
1.1.2 Cortex-M0+内核介绍
ARM Cortex-M0+是2012年3月14日ARM公司发布的一款低功耗、高能效的ARM处理器,可用于存在设计约束的嵌入式应用。它具有极小的硅面积和极少的代码量,处理器的低门数使其能够部署在需要简单功能的应用中。
作为ARM Cortex-M处理器系列的最新成员,32位Cortex-M0+处理器采用了低成本90nm低功耗(Low Power,LP)工艺,功耗仅9μA/MHz,约为主流8位或16位处理器的1/3,却能提供更高的性能。这种低功耗和高性能的结合为仍在使用8位或16位架构的用户提供了一个转型开发32位器件的理想机会,从而可在不牺牲功耗和面积的情况下,提高日常设备的智能化程度。该款经过优化的Cortex-M0+处理器可针对家用电器、医疗监控、电子测量、照明设备以及汽车控制器件等各种广泛应用的智能传感器与智能控制系统,提供超低功耗、低成本微控制器。
Cortex-M0+集成了存储器保护单元(Memory Protection Unit,MPU)、单周期I/O接口和微跟踪缓存(Micro Trace Buffer,MTB)。ARM Cortex-M0+框图如图1-1所示。

图1-1
ARM Cortex-M0+内核具有以下关键特征。
● 采用ARMv6-M架构。
● AHB-Lite总线接口,冯·诺依曼总线架构,带可选单周期I/O接口。
● Thumb/Thumb-2子集指令支持。
● 两段流水线。
● 可选8区域MPU,带子区域和背景区域。
● 不可屏蔽中断和1~32个物理中断。
● 唤醒中断控制器。
● 硬件单周期(32×32)乘法。
● 多种休眠模式,带集成式等待中断(Wait for Interrupt,WFI)、等待事件(Wait for Event,WFE)以及退出时休眠功能、休眠和深度休眠功能。
● 根据实现方式提供多种保留模式。
● 联合测试工作组(Joint Test Action Group,JTAG)和串行线调试(Serial Wire Debug,SWD)接口,具有多达4个断点和两个观察点。
● 可选MTB。
ARM Cortex-M0+ MCU的关键优势如下。
● 小尺寸内核使其能够用作小设备中的单核心,或在需要特定硬件隔离或任务划分时,用作额外的嵌入式配套内核。
● Cortex-M0+内核不会影响基于I/O、模拟和非易失性存储器的典型MCU的各元件之间的取舍。因此在划分MCU产品组合时,总线位宽(8位、16位或32位)不再相关。
● M0+微控制器在入门级应用中得到广泛使用,并带来了巨大优势。它们能满足计算性能要求,其基本架构允许M0+ MCU在开关门数量较少的应用中达到超低功耗性能。Cortex-M0内核可减少噪声发射,并满足使用最佳时钟速度的性能要求。
● 内核的动态功率为5~50µW/MHz,这取决于所采用的技术。但是,内核功耗并不能代表设备的整体功耗,并且不是要考虑的唯一因素。
● Thumb指令集是Cortex-M系列所采用指令集的子集。它可以重复使用任何经验证的Cortex-M产品软件块,从而可以简化产品组合,提高可扩展性。
● MPU管理CPU对存储器的访问,确保任务不会意外破坏其他激活任务所使用的存储器或资源。MPU通常由实时操作系统(Real-Time Operating System,RTOS)控制。若程序访问的存储器位置被MPU禁止,则RTOS可检测到它并采取行动。内核可基于执行的进程,动态更新MPU区的设置。