Why we choose the Cortex-M0:
Arm 推出Cortex-M0满足了当代超低功耗控制器和混合信号设备的需要,它在保持低功耗、延长电池寿命的同时还能极大的提高运行速率(体积小且功耗低),它还有完整的32位核心。
1st:
Cortex-M0的运行效率很高,能在极短的时间里完成一项任务,所以它在多数时间里都在休眠,它也可以在较低频率下完成任务,所以它有更低的动态功耗和良好的电磁干扰特性(EMI),它较小的逻辑门电路也降低了待机电流,高效的中断控制器(NVIC)的开销也很小。
2st:
很多应用中,使用的是基于Thumb-2的指令集,其生成的代码大小比用8位或16位架构的代码还要小,占用的Flash空间更小(选型空间大),且在整机功耗中Flash操作的占比很大,所以也降低了功耗。
3st:
Cortex-M0适合用C语言编程,且被多种编译器支持,使用C语言可以直接操作中断例程,可以绕开汇编语言,且其指令集中只有56个指令,学习难度低。作为具备高性能流水线的处理器,指令周期和中断处理的时间也是完全确定的(零误差!),可以用与对于时间要求比较高的系统中,开发人员也可以精准的预测和分析系统时间。
The relationship between ARM and MicroController:
如下图所示:
(本图摘选自《The Definitive Guide to the ARM Cortex-M0》清华大学出版社译本)
微控制器(芯片)厂家使用Arm的内核,添加外设,然后共同封装到一起形成我们常见的芯片。而Arm不负责芯片外设的设计与封装。所以相同内核,其控制方式大同小异,只有外设的区别(此点待考证)。