Arm Cortex-M0+及其功能

  作者:EEPW 时间:2024-08-14来源:EEPW

Arm Cortex-M0+是一种可靠的架构,具有低功耗需求,并在紧凑而高效的形式下提供32位功能。

Cortex-M0+并不是最新的小型低功耗处理器,事实上,一些更新的产品可能已经超过了它。然而,由于其广泛的部署和成熟的环境,Cortex-M0+仍然是低功耗应用的有力选择。

那么,Cortex-M0+有哪些重要特性呢?Cortex-M处理器系列整体上旨在满足市场对低功耗和低成本设备的需求,因此适用于广泛的应用场景。Cortex-M0+处理器进一步发展了这一系列,提供了最小的占用面积和最低的功耗。这使得Cortex-M0+成为可穿戴设备和传感器的理想选择。

Cortex-M0+是一个小型的32位微处理器,针对特定需求进行了优化,并与Cortex-M0具有完全相同的指令集兼容性。这意味着在两者之间可以使用相同的编译器和调试工具。

Cortex-M0+有一个名为Micro Trace Buffer (MTB) 的硅选项,提供了一个简单的指令跟踪缓冲区。这是在Cortex-M0调试功能的基础上增加的功能。此外,还可以将Cortex-M3和M4的一些功能添加为硅选项。

Cortex-M0+基于ARMv6-M架构,与Cortex-M0共享指令集。适用的子指令集包括大多数的Thumb-1,缺少CBZ、CBNZ、IT和一些Thumb-2指令;并且只有BL、DMB、DSB、ISB、MRS、MSR指令。

Cortex-M0+具有32位的硬件整数乘法,结果也是32位,并且支持1到32个中断,外加NMI(非屏蔽中断)。

Cortex-M0+的内存保护单元(MPU)的功能是监控CPU对内存的使用,确保没有任务会破坏内存或影响其他活动任务。通常由实时操作系统(RTOS)控制,MPU可以检测未经授权的内存访问尝试。

Cortex-M0+中的流水线 原始的Cortex-M0内核(以及Cortex-M3和M4)采用三级流水线构建。Cortex-M0+则有所不同,它采用了两级流水线。Cortex-M0+通过将流水线从三级减少到两级来降低功耗并提高性能。指令每周期的效率更高,分支指令执行的周期减少一个。第一级是取指和预解码,第二级是主解码和执行。

为什么选择两级流水线?使用两级而不是三级流水线可以减少对闪存的访问。这一点很重要,因为闪存的功耗往往是微控制器总功耗的主要来源。因此,减少闪存访问可以显著降低整体功耗。

Cortex-M0+支持多少个中断优先级? Arm Cortex-M0+的一部分是嵌套向量中断控制器(NVIC),它作为内核与任何外部中断源之间的接口。它可以支持一个NMI,具有与其他外部中断类似的属性,并连接到CPU的NMI请求,但又是独立的。

此外,外部中断控制器(EIC)可以生成事件,并允许单独配置每条中断线。它还支持中断信号的脉冲和电平检测、低延迟异常处理和中断尾链功能。

NVIC提供了外部中断源(如外围设备和外部引脚)与内核之间的接口。通过编程,可以将每个中断源的优先级设置为四个级别之一。当两个待处理的中断具有相同的优先级时,可以使用此优先级。例如,在这种情况下,优先级较低的中断将优先被处理,即最低的中断向量地址。

Cortex-M0+的性能和应用 Cortex-M0+被认为是Arm处理器中最节能的处理器之一,适用于受限的嵌入式应用。M0+内核的流水线为两级,这使其在保持2.42 CoreMark/MHz性能的同时,实现了11.2 µW/MHz的功耗。该处理器还具有三种低功耗模式,可根据处理需求节省能源。

根据已发布的资料,Cortex-M0+内核已被广泛应用于业界。例如:

许多其他设备将Cortex-M0+作为辅助内核嵌入。值得注意的是,Cortex-M0+内核的小尺寸使其能够作为嵌入在更大设备中的单一内核成功运行,作为伴随内核。在这种安排中,Cortex-M0+可以提供任务分区和/或硬件隔离功能。

关键词: MCU Arm

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版