虽然Cortex-M系列处理器有非常多的特性,但是很容易使用,差不多所有的开发都可以用像C语言这样的高级编程语言。
虽然基于Cortex-M系列处理器产品都大不相同(例如,有不同大小的内存,不同的外设,性能和封装等等),架构的一致性让开发者一旦对他们其中的一块有开发经验,就很容易开始使用新的Cortex-M处理器。
为了实现更容易的软件开发,更好的软件重用性和可移植性,ARM开发了CMSIS-CORE,CMSIS即为Cortex-Microcontroller Software Interface Standard,CMSIS-CORE通过一组APIs为处理器的各种特性像终端管理控制提供了一个标准的硬件抽象层(HAL), CMSIS-CORE集成在各种微处理器厂商提供的设备驱动程序库里,被各种开发工具套件支持。
除了CMSIS-CORE, CMSIS还包含一个DSP软件库(CMSIS-DSP)。这个库提供了为Cortex-M4 和 Cortex-M7优化过的各种DSP函数,当然也支持其他的Cortex-M系列处理器。CMSIS-CORE 和 CMSIS-DSP库都是免费的,可以从GitHub (CMSIS 4, CMSIS 5)下载到,并被许多工具厂商支持。
处理器选择
对大多数微控制器用户来说,微控制器设备的选择标准主要取决于成本和外设的支持情况。但是,很多人可能是为下个芯片产品选择处理器核心芯片的设计者,这种情况下,处理器本身会是考虑的焦点。
明显的,在这样的情况下,性能,芯片面积,功耗和成本会是至关重要的因素。同时,还有各种其他的因素需要考虑。例如,如果在开发一款互联网连接产品,也许需要选择有TrustZone安全扩展和MPU的处理器,这样可以用TrustZone保护关键的安全特性数据,运行某些任务在非特权级别并用MPU来保护内存空间。此外,如果需要在某些方面认证你的产品,Cortex-M23, Cortex-M33, Cortex-M3, Cortex-M4 和 Cortex-M7支持的ETM生成的指令跟踪会对代码覆盖率认证非常有帮助。
在其他的芯片设计领域,如果你正在设计可以运行在能量采集设备供电的小传感器,那么Cortex-M23 和 Cortex-M0+会是最好的选择,因为它们非常小并且做了最先进的功耗优化。
生态系统
使用ARM Cortex-M系列处理器的关键优势之一是广泛的成熟设备、开发工具链和软件库的支持。目前有:
1. 超过15家微控制器厂商正在销售基于ARM Cortex-M系列内核的微控制器产品;
2. 超过10种开发套件支持ARM Cortex-M系列处理器;
3. 40多家操作系统厂商的操作系统支持Cortex-M系列处理器;
这给了开发者大量选择,可以获得适合目标应用的最好的设备、开发工具和中间件组合。
总结
性能,特性和芯片面积,功耗之间总是需要平衡。为此,ARM开发了各种Cortex-M处理器,拥有不同级别的指令集特性,性能,系统和调试特性。
Cortex-M处理器家族虽然存在这差别,但架构的一致性和CMSIS-CORE标准化的APIs都让Cortex-M系列处理器软件有更好的移植性和可重用性。同时,Cortex-M系列处理器非常方便使用。因此,Cortex-M系列处理器很快成为微控制器市场的最受欢迎的32位处理器架构。