最近在关注Cortex-M处理器,针对目前进入大众视野的M0、M3、M4做了如下简单对比,内容来自ARM等官网,这里仅仅是整理了下,看起来更直观点,呵呵。
Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。.
一、比较Cortex-M 处理器
Cortex-M 系列处理器都是二进制向上兼容的,这使得软件重用以及从一个 Cortex-M 处理器无缝发展到另一个成为可能。
M Cortex-M 技术
CMSIS
ARM Cortex 微控制器软件接口标准 (CMSIS)是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。 使用 CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新产品的上市时间。
深入:嵌套矢量中断控制器 (NVIC)
NVIC 是 Cortex-M 处理器不可或缺的部分,它为处理器提供了卓越的中断处理能力。
Cortex-M 处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。
为了减少门数并增强系统灵活性,Cortex-M 处理器使用一个基于堆栈的异常模型。出现异常时,系统会将关键通用寄存器推送到堆栈上。完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。使用此方法,便无需编写汇编器包装器了(而这是对基于 C 语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。NVIC支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。
在硬件中完成对中断的响应
Cortex-M 系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括:
检测中断
背对背或迟到中断的最佳处理(参见下文)
提取矢量地址
将易损坏的寄存器入栈
跳转到中断处理程序
这些任务在硬件中执行,并且包含在为 Cortex-M 处理器报出的中断响应周期时间中。在其他许多体系结构中,这些任务必须在软件的中断处理程序中执行,从而引起延迟并使得过程十分复杂。
NVIC 中的尾链
在背对背中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M 处理器通过在 NVIC 硬件中实现尾链技术简化了活动中断和挂起的中断之间的转换。处理器状态会在比软件实现时间更少的周期内自动保存在中断条目上并在中断退出时还原,从而显著提升低 MHz 系统的性能。
NVIC 对迟到的较高优先级中断的响应
如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC 会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-M NVIC 对这些可能性提供具有确定性的响应并支持迟到和抢占。
NVIC 进行的堆栈弹出抢占
同样,如果异常到达,NVIC 将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC 以具有确定性的方式实现了缩短延迟。
二、为什么选择
1、为什么选择Cortex-M0
能耗最低的最小 ARM 处理器
Cortex-M0 的代码密度和能效优势意味着它是各种应用中 8/16 位设备的自然高性价比换代产品,同时保留与功能丰富的 Cortex-M3 处理器的工具和二进制向上兼容性。
超低的能耗
Cortex-M0 处理器在不到 12 K 门的面积内能耗仅有 85 µW/MHz(0.085 毫瓦),所凭借的是作为低能耗技术的领导者和创建超低能耗设备的主要推动者的无与伦比的 ARM 专门技术。
简单
指令只有 56 个,这样您便可以快速掌握整个 Cortex-M0 指令集(如果需要);但其 C 语言友好体系结构意味着这并不是必需的。可供选择的具有完全确定性的指令和中断计时使得计算响应时间十分容易。
优化的连接性
设计为支持低能耗连接,如 Bluetooth Low Energy (BLE)、IEEE 802.15 和 Z-wave,特别是在这样的模拟设备中:这些模拟设备正在增加其数字功能,以有效地预处理和传输数据。
2、为什么选择Cortex-M3
提供更高的性能和更丰富的功能
于 2004 年引进、最近通过新技术进行了更新并更新了可配置性的 Cortex-M3,是专门针对微控制器应用开发的主流 ARM 处理器。
性能和能效
具有高性能和低动态能耗,Cortex-M3 处理器提供领先的功效:在 90nmG 基础上为 12.5 DMIPS/mW。将集成的睡眠模式与可选的状态保留功能相结合,Cortex-M3处理器确保对于同时需要低能耗和出色性能的应用不存在折衷。
全功能
该处理器执行 Thumb®-2 指令集以获得最佳性能和代码大小,包括硬件除法、单周期乘法和位字段操作。Cortex-M3 NVIC 在设计时是高度可配置的,最多可提供 240 个具有单独优先级、动态重设优先级功能和集成系统时钟的系统中断。
丰富的连接
功能和性能的组合使基于 Cortex-M3 的设备可以有效处理多个 I/O 通道和协议标准,如 USB OTG (On-The-Go)。
3、为什么选择Cortex-M4
目标用用:专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。
曾获大奖的高能效数字信号控制
Cortex-M4 提供了无可比拟的功能,以将 32 位控制与领先的数字信号处理技术集成来满足需要很高能效级别的市场。
易于使用的技术
Cortex-M4 通过一系列出色的软件工具和 Cortex 微控制器软件接口标准 (CMSIS)使信号处理算法开发变得十分容易。
三、规范
1、M0
ARM Cortex-M0 处理器执行 Thumb 指令集,包括少量使用Thumb-2 技术的32 位指令。这是ARM Cortex-M3 和ARM Cortex-M4 支持的指令集的二进制向上可兼容子集。
2、M3
内核面积、频率范围和功耗取决于工艺、库和优化。上面引用的数字是使用通用 TSMC 工艺技术和 ARM 物理 IP 标准单元库和 RAM 的合成核心的说明。面积数字包括 CM3Core、嵌套向量中断控制器 (NVIC) 和总线矩阵,但不包括可选组件(包括内存保护单元、嵌入式跟踪宏单元、断点单元、数据检测点单元和跟踪端口接口单元)。
速度优化的实现是指为了实现目标频率性能而做出的库选择、合成流决策和折衷。面积优化的实现是指为了实现目标面积密度而做出的库选择、合成流决策和折衷。
3、M4
内核面积、频率范围和功耗取决于工艺、库和优化。上面引用的数字是使用低功耗工艺技术和 ARM 物理 IP 标准单元库和 RAM 的合成内核的说明。面积数字包括中央内核(包括 DSP 扩展、嵌套矢量中断控制器 (NVIC) 和总线矩阵),但不包括可选组件(包括内存保护单元、嵌入式跟踪宏单元、断点单元、数据检测点单元和 TracePort Interface Unit。
速度优化的实现是指为了实现目标频率性能而做出的库选择、合成流决策和折衷。面积优化的实现是指为了实现目标面积密度而做出的库选择、合成流决策和折衷。
以下的一点为M4页面特有的介绍:
系统 IP
系统 IP 组件对于在芯片上构建复杂的系统至关重要,通过利用系统 IP 组件,开发人员可以显著缩短开发和验证周期,从而节省成本并缩短产品的上市时间。
注:以上内容摘自http://www.arm.com/
目前部分主流厂家的产品介绍:
德州仪器:
1、 LM3Sxxxx系列(M3)
2、 LM4Fxxxx系列(M4)
意法半导体:
1、 STM32 F0xx系列(M0 48MHZ)
2、 STM32 Lxxx系列(M3 32MHZ)
3、 STM32 F1xx系列(M3 72MHZ)
4、 STM32 F2xx系列(M3 120MHZ)
5、 STM32 F3xx系列(M3 120MHZ)??
6、 STM32 F4xx系列(M4 168MHZ)
NXP:
1、 LPC11xx LPC12xx系列(M0)
2、 LPC13xx LPC17xx LPC18xx 系列(M3)
3、 LPC43xx 系列(M4)
飞思卡尔:
1、 Kinetis L系列(M0+)
2、 Kinetis X系列、K系列(M4)
Atmel:
1、 SAM3S/U/N系列(M3)
2、 SAM4S系列(M4)
3、 SAM7xxxx系列(ARM7)
4、 SAM9xxxx系列(ARM9)
英飞凌:
1、 XCM4000系列(M4,是英飞凌第一次推出ARM架构的MCU)
富士通:
1、 FM3家族(M3)
SILICON LABS:
1、 SiM3C1xx(80MHZ)系列 (M3)
2、 SiM3U1xx(80MHZ USB)系列(M3)
来源:https://blog.csdn.net/chiooo/article/details/50463520