Cortex-M3 和 Cortex-M4 处理器使用32位架构
,寄存器组中内部寄存器,数据通路以及总线接口都是32位,使用的指令集架构(ISA)为Thumb ISA
,基于Thumb-2技术并同时支持16位和32位指令。
Cortex-M3 和 Cortex-M4 处理器特点如下:
三级流水线
设计(取指、译码、执行)哈佛总线架构
,具有统一的存储器空间:指令和地址总线使用相同的地址空间。32位寻址
,支持4GB存储器空间。ARM AMBA
(高级微控制器总线架构)技术的片上接口,支持高吞吐量的流水线总线操作。NVIC
(嵌套向量中断控制器)的中断控制器,支持最多240个中断请求和8 ~ 256个中断优先级(取决于实际芯片设计)Cortex-M3 和 Cortex-M4 处理器提供的指令如下:
另外Cortex-M4 处理器还支持:
整个Cortex-M家族如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AYM0bf8o-1616487785042)(en-resource://database/2035:1)]
Cortex-M3 和 Cortex-M4 处理器基于 ARMv7-M架构,它们都具有高性能,且是位微控制器应用设计。M4还可以用于与执行一些数字信号处理程序。
Cortex-M0 和 Cortex-M0+ 以及 Cortex-M1基于ARMv6-M,它们指令集比较小。适合低成本微控制器产品。
Cortex-M1专门为FPGA应用设计。
典型的微控制器设计中,处理器只占用芯片的一小块区域,其他部分则分为存储器、时钟生成(PLL
)和分配逻辑、系统总线以及外设等,如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7tgNAQu8-1616487785045)(en-resource://database/2037:1)]
与其他32位微控制器设计相比,Cortex-M处理器相对较小,处理器也进行了低功耗的优化,许多控制器功耗都小于 200uA/MHz,有的还低于100uA/MHz。另外处理器还支持休眠模式特性,可以和其他先进的超低功耗设计技术配合使用,因此可以用用于各种超低功耗的控制器产品中。
Cortex-M3 和 Cortex-M4 处理器的性能可以达到 3 CoreMark/MHz
、1.25DMIPS/MHz
,这样Cortex-M3 和 Cortex-M4 处理器就可以处理许多复杂的应用,或者使用更低的频率以降低功耗。
关于CoreMark :
CoreMark是由EEMBC(Embedded Microprocessor Benchmark Consortium)的Shay Gla-On于2009年提出的一项基准测试程序,其主要目标是测试处理器核心性能,CoreMark标准的测试方法很简单,就是在某配置参数组合下单位时间内跑了多少次CoreMark程序,其指标单位为CoreMark/MHz。CoreMark数字越高,意味着性能更高。
关于DMIPS(Dhrystone Million Instructions executed Per Second):
(Dhrystone Million Instructions executed Per Second)
结合前面低功耗和高性能的特点,Cortex-M3 和 Cortex-M4 处理器具有非常优秀的能耗效率,这意味着在有限的能量下,仍然可以进行大量的处理工作,可以提高可移动产品的电池寿命。
Thumb ISA
提供了良好的代码密度,这意味着完成同样的任务,所需的程序代码更少,因此可以选择具有较小flash的微控制器以降低成本和功耗。
Cortex-M3 和 Cortex-M4 处理器具有可佩值得中断控制器设计,支持多大240个可嵌套向量中断和多个中断优先级,中断嵌套由硬件自动处理,具有零等待状态存储器的系统的中断等待仅为12个周期。因此适合实时控制应用。
Cortex-M处理器具有简单、线性的存储器映射,因此几乎所有的代码都可以用C实现,包括中断处理。
由于处理器架构间的一致性,只需要使用一种工具链就可以很容易的重用软件。
除了标准的调试特性,如多数微控制器都支持的但不和暂停调试,还可以生成捕获程序流、数据变动以及概况信息等的跟踪数据。对于多处理设计,每个Cortex-M处理器的调试系统可以连在一起,并共享调试链接。
Cortex-M处理器在设计之初就考虑了OS应用,许多特性保持了OS的实现及高效运行。
Cortex-M3 和 Cortex-M4 处理器支持多种系统特性,如 可位寻址存储器区域(位段特性)
和 MPU(存储保护单元)
等。
由于架构对C比较友好,几乎所有的代码都可以用标准的ANSI C进行变成。CMSIS(Cortex微控制器软件接口标准)
是ARM提出的,它通过提供标准的头文件以及标准的Cortex-M处理器功能的API,使得基于Cortex-M处理器的编程更加简单。提高了软件的可重用性和代码的可移植性。
Cortex-M微控制器支持多种软件开发调试工具、嵌入式OS及中间件,可以灵活的进行选择。
ARM网站文档部分链接(Infocenter):https://developer.arm.com/documentation