Login

Important information

本网站使用cookie来存储信息在您的计算机上。继续使用我们的网站,您必須同意我们 cookies.

ARM网站使用两款浏览器缓存数据(cookie):(1)缓存数据(cookie)可以使网站按需要完成功能执行 (2)分析性缓存数据(cookie)在用户登录网站时会进行匿名记录和数据分析。如果您不希望应用这些缓存数据(cookie),请通过查阅我们的安全隐私政策获知如何设置禁用缓存数据(cookie)。网站的某些功能会因设置禁用缓存数据(cookie)不能使用。

Cortex-M 系列

Cortex-M 系列 Image
ARM Cortex™-M 处理器系列是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。nbsp;

Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。.

有关 ARM 嵌入式产品和资源的更多信息,请访问 ARM 嵌入式 microsite

Cortex-M 处理器的应用示例

Cortex-M 处理器的应用示例

 


为什么选择 Cortex-M

业界标准

ARM Cortex-M 处理器树立了全球微控制器的标准,40 多个 ARM 合作伙伴已获得这些处理器的使用许可,其中包括 FreescaleNXP SemiconductorsSTMicroelectronicsTexas InstrumentsToshiba 等领先供应商。通过采用标准处理器,ARM 合作伙伴可制造出具有统一架构的设备,同时能够专注于各自差异化的设计。

Actel Analog Devices Atmel Broadcom CypressDust Networks ember Energy Micro Freescale Fujitsu Nuvoton NXP Renesas Samsung STMicroelectronicsTexas Instruments Toshiba Triad Semiconductor


能效

能效

更低的功耗,更长的电池寿命

  • 以更低的 MHz 或更短的活动时段运行
  • 基于架构的睡眠模式支持
  • 比 8/16 位设备的工作方式更智能、睡眠时间更长

更小的代码

处理器芯片照片更低的硅成本

  • 高密度指令集
  • 比 8/16 位设备每字节完成更多操作
  • 更小的 RAM、ROM 或闪存要求

mbed 评估板易于使用

更快的软件开发和重用

  • 多个供应商之间的全球标准
  • 代码兼容性
  • 统一的工具和操作系统支持      

性能比较

高性能

更有竞争力的产品

  • Powerful Cortex-M processor 
  • 每 MHz 提供更高的性能
  • 能够以更低的功耗实现更丰富的功能

 


比较 Cortex-M 处理器

Cortex-M 系列是适用于具有不同的成本、功耗和性能的一系列易于使用的兼容嵌入式设备(如微控制器 (MCU))的理想解决方案。每个处理器都针对十分广泛的嵌入式应用范围提供最佳权衡取舍。

 

ARM Cortex-M0 ARM Cortex-M0+ ARM Cortex-M3 ARM Cortex-M4

“8/16 位”应用 

“8/16 位”
应用

“16/32 位”应用

 “32 位/DSC”应用

低成本和简单性

低成本,
最佳能效

高性能,
通用

高效数字
信号控制

 

Cortex-M 系列处理器都是二进制向上兼容的,这使得软件重用以及从一个 Cortex-M 处理器无缝发展到另一个成为可能。

 


ARM Cortex-M 技术

每个 Cortex-M 系列处理器都有其特定优点:采用一些基本技术,而这些技术使得 Cortex-M 处理器适用于广泛的嵌入式应用程序。

 

 RISC 处理器内核 

Thumb-2® 技术

  • 高性能 32 位 CPU
  • 具有确定性的运算
  • 紧凑而低延迟的管道
  • 16/32 位指令的最佳混合
  • 代码大小比 8 位设备小 30%
  • 对性能没有负面影响
 低功耗模式

嵌套矢量中断控制器 (NVIC)

  • 集成的睡眠状态支持
  • 多电源域
  • 基于架构的软件控制
  • 低延迟、低抖动中断响应
  • 不需要汇编编程 
  • 以纯 C 语言编写的中断服务例程
 工具和 RTOS 支持 CoreSight 调试和跟踪

CMSIS

ARM Cortex 微控制器软件接口标准 (CMSIS) 是一个与供应商无关的硬件抽象层,用于 Cortex-M 处理器系列。CMSIS 可为接口外设、实时操作系统和中间件实现一致且简单的处理器软件接口,从而简化软件的重用。CMSIS 可缩短微控制器开发人员新手的学习过程,从而缩短新产品的上市时间。

深入:嵌套矢量中断控制器 (NVIC)

NVIC 是 Cortex-M 处理器不可或缺的部分,它为处理器提供了卓越的中断处理能力。

Cortex-M 处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。

为减少门数和提高系统灵活性,Cortex-M 处理器采用基于堆栈的异常模型。一旦发生异常,Cortex-M 处理器就会将关键通用寄存器推到堆栈上。一旦完成入栈和指令取回,就会执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。这种方法不再需要编写对于传统 C 语言中断服务例程来说执行堆栈操作所必需的汇编器包装程序,从而大大方便了应用程序的开发。NVIC 支持多个中断的嵌套(入栈),通过运用较高优先级来允许某一中断的较早执行。对硬件中断的全面响应

Cortex-M 系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括: 

  • 检测中断
  • back-to-back 或 late arriving 的最佳处理(参见下文)
  • 提取中断向量地址
  • 将易损坏的寄存器入栈
  • 跳转到中断处理程序

这些任务在硬件中执行,并且包含在为 Cortex-M 处理器报出的中断响应周期时间中。在许多其他架构中,这些任务必须在软件的中断处理程序中执行,从而引入延迟并带来复杂性。

 

NVIC 中的 Tail chaining

Back to back 中断时序图

在 Back to back 中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M 处理器通过在 NVIC 硬件中实现 Tail chaining 技术来简化活动的中断和挂起的中断之间的切换。处理器状态会在进入中断时自动保存,并在退出中断时恢复。由于与软件实现相比周期数减少,因而可显著提高低频系统的性能。

NVIC 对迟到的较高优先级中断的响应

迟到中断到达时间图

如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC 会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-M NVIC 对这些可能性提供具有确定性的响应并支持迟到和抢占。

 

NVIC 进行的堆栈弹出抢占

抢占时间图

同样,如果异常到达,NVIC 将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC 以具有确定性的方式实现了缩短延迟。

 


从 8/16 位迁移到 ARM Cortex-M

ARM Cortex-M 代码大小优势说明

ARM Cortex-M 处理器提供优于 8 位和 16 位架构的代码密度。这在减少对内存的需求和最大限度地提高宝贵的芯片上闪存的使用率方面具有很大的优势。我们将在本部分中分析此优势的原因。

指令宽度

很多人认为 8 位微控制器使用 8 位指令,而基于 ARM Cortex-M 处理器的微控制器使用 32 位指令,其实这是一种误解。事实上,举例来说,PIC18 和 PIC16 指令大小分别是 16 位和 14 位。对于 8051 架构,虽然某些指令的长度为 1 字节,但许多其他指令的长度为 2 字节或 3 字节。16 位架构也是如此,其中某些指令可能占用 6 字节或更多内存。

ARM Cortex-M 处理器采用可提供极佳代码密度的 ARM Thumb®-2 技术。通过 Thumb-2 技术,Cortex-M 处理器支持基本 16 位 Thumb 指令,这些指令经过扩展,可包括进更强大的 32 位指令。在很多情况下,C 编译器将使用 16 位版本的指令,除非使用 32 位版本可以更有效地执行运算。

指令效率

由于没有同时考虑到 ARM Cortex-M 处理器指令更为强大,此图片是不完整的。在许多情况下,单个 Thumb 指令可相当于数个 8/16 位微控制器指令;这意味着 Cortex-M 设备的代码量更少,因此可以更低的总线速度完成同一任务。

在各处理器架构之间比较 16 位乘法运算

 8 位示例 16 位示例 ARM Cortex-M

MOV A, XL;2 字节

MOV B, YL;3 字节

MUL AB;1 字节

MOV R0, A;1 字节

MOV R1, B;3 字节

MOV A, XL;2 字节

MOV B, YH;3 字节

MUL AB;1 字节

ADD A, R1;1 字节

MOV R1, A;1 字节

MOV A, B;2 字节

ADDC A, #0;2 字节

MOV R2, A;1 字节

MOV A, XH;2 字节

MOV B, YL;3 字节

 

MUL AB;1 字节

ADD A, R1;1 字节

MOV R1, A;1 字节

MOV A, B;2 字节

ADDC A, R2;1 字节

MOV R2, A;1 字节

MOV A, XH;2 字节

MOV B, YH;3 字节

MUL AB;1 字节

ADD A, R2;1 字节

MOV R2, A;1 字节

MOV A, B;2 字节

ADDC A, #0;2 字节

MOV R3, A;1 字节  

 

MOV R4,&0130h

MOV R5,&0138h

MOV SumLo,R6

MOV SumHi,R7

(操作数被移入或移出内存映射的硬件乘法单元)

 

 MULS r0,r1,r0

 注意:Cortex-M 乘法实际上执行 32 位乘法,此处我们假设 r0 和 r1 包含 16 位数据。

压缩的数据占用空间

请务必注意,Cortex-M 处理器支持 8 位和 16 位数据传输,可高效利用数据内存。这意味着程序员可以继续使用他们在面向 8/16 位的软件中使用的相同数据类型。

能效优势

对不断增加连接(例如,USB、蓝牙和 IEEE 802.15)、具有复杂模拟传感器(例如,加速计和触摸屏)且成本日益降低的产品的需求,已导致需要将模拟设备与数字功能更紧密地集成,以对数据进行预处理和传输。大多数 8 位设备在不显著增加 MHz(并因此不显著增加功率)的情况下不提供支持这些任务的性能,因此嵌入式开发人员需要寻找具有更高级处理器技术的替代设备。16 位设备以前曾被用来解决微控制器应用中的能效问题。但是,16 位设备相对不高的性能意味着它们通常需要较长的活动工作周期或较高的时钟频率才能完成 32 位设备所完成的相同任务。

使软件开发更加容易

基于 ARM Cortex 处理器的微控制器的软件开发可能比 8 位微控制器产品的开发容易得多。 Cortex 处理器不但是完全可通过 C 语言进行编程的,而且还附带各种高级调试功能以帮助定位软件中的问题。 除 MCU 开发工具包中包括的所有附加资源外,Internet 上还有大量示例和教程,其中许多来自基于 ARM 处理器的 MCU 供应商的网站。


资源

本部分介绍有关 ARM Cortex-M 处理器和相关技术的有用文档、白皮书和教程。

有关包括开发工具、软件、板卡和设备数据库、CMSISmBed 在内的详细信息,请访问 ARM 嵌入式微型站点

书目

ARM Cortex-M0 权威指南
编程和实现全新 ARM Cortex-M0 处理器的综合性指南  
 

ARM Cortex-M3 权威指南
编程和实现全新 ARM Cortex-M3 处理器的综合性指南 
 

 

适用于 Cortex-M 设备用户的文档

适用于 Cortex-M 设备用户的软件开发工具

查找基于 Cortex-M 的微控制器

大学

相关用户指南和应用说明

用于访问处理器 IP 的 DesignStart

» 
Cortex-M Series Forum Posts

Maximise