Login

Cortex-M 系列

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

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

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

标题

Cortex-M 处理器的应用示例

Cortex-M 处理器的应用示例

 


业界标准

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

Actel Analog Devices Atmel Broadcom CypressDust Networks Atmel Energy Micro Freescale FujitsuInfineon Technologies 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%
  • 对性能没有负面影响

工具和 RTOS 支持 CoreSight 调试和跟踪

低功耗模式 嵌套矢量中断控制器 (NVIC)
  • 集成的睡眠状态支持
  • 多电源域
  • 基于架构的软件控制
  • 低延迟、低抖动中断响应
  • 不需要汇编编程
  • 以纯 C 语言编写的中断服务例程

CMSIS

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

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

NVIC 是所有 Cortex-M 处理器不可或缺的组成部分,它为处理器提供了卓越的中断处理能力。在 Cortex-M0、Cortex-M0+ 和 Cortex-M1 处理器中,NVIC 支持多达 32 个中断 (IRQ)、一个不可屏蔽中断 (NMI) 和各种系统异常。Cortex-M3 和 Cortex-M4 处理器扩展了 VIC,使其支持多达 240 个 IRQ、一个 NMI 和更多系统异常。

大多数 NVIC 设置是可编程的。配置寄存器是内存映射的一部分,可以作为 C 指针进行访问。CMSIS 库还提供了各种辅助函数,使中断控制变得更简单。
在 NVIC 内部,每一个中断源都分配有一个中断优先级。一些类似于 NMI 的系统异常均拥有固定的优先级,而其他系统异常则拥有可编程的优先级。通过向每一个中断分配不同的优先级,NVIC 可自动支持嵌套中断,而无需任何软件干预。

该体系结构为每一个可编程的中断或异常提供 8 位优先级设置。为了减少门数,这些寄存器中只有一部分得以实现。Cortex-M0、Cortex-M0+ 和 Cortex-M1 处理器(ARMv6-M 体系结构)提供了 4 个可编程的优先级。Cortex-M3 和 Cortex-M4 处理器(ARMv7-M 体系结构)的设计允许 8 到 256 个优先级。

为了使 Cortex-M 处理器更简单易用,Cortex-M 处理器使用一个基于堆栈的异常模型。一旦出现异常,系统就会将许多寄存器推送到堆栈上。当异常处理程序完成时,这些寄存器将恢复为其原始值。这使得异常处理程序能以普通的 C 函数形式编写,还能减少中断处理过程中隐藏的软件开销。

此外,Cortex-M 处理器使用一个向量表来包含要为每一个特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。这也将避免软件开销,减少中断延迟。

Cortex-M 处理器的实现中还应用了各种优化技术,使得中断处理更高效,系统响应速度更快:

尾链 - 如果在 ISR 退出时有另一个异常挂起,处理器不会从堆栈中恢复所有已保存的寄存器,相反,它会前进到下一个 ISR。这可以减少从一个异常处理程序切换到另一个时的延迟。

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

迟到 - 如果在优先级较低的中断推入堆栈的过程中出现优先级较高的中断,处理器会提取新的矢量地址,并先处理优先级较高的中断。

通过这些优化,随着中断负载的增加,中断开销会减少,从而使嵌入式系统能实现较高的中断处理吞吐量。


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 处理器的综合性指南

ARM 权威指南
Cortex-M0(韩语)

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

 

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

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

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

大学

相关用户指南和应用说明

Cortex-M0/3/4 设备通用用户指南

指令计时信息

架构(需要注册)

ARM 应用程序说明

Keil 应用程序说明

用于访问处理器 IP 的 DesignStart





Maximise


Cookies

We use cookies to give you the best experience on our website. By continuing to use our site you consent to our cookies.

Change Settings

Find out more about the cookies we set