Login

Cortex-M3 处理器

Cortex-M3 处理器 Image (View Larger Cortex-M3 处理器 Image)
ARM Cortex®-M3 处理器是行业领先的 32 位处理器,适用于具有较高确定性的实时应用,它经过专门开发,可使合作伙伴针对广泛的设备(包括微控制器、汽车车身系统、工业控制系统以及无线网络和传感器)开发高性能低成本平台。此处理器具有出色的计算性能以及对事件的优异系统响应能力,同时可应实际中对低动态和静态功率需求的挑战。此处理器配置十分灵活,从而支持广泛的实现形式(从需要内存保护和强大 trace 技术的实现形式,直至需要极小面积的成本敏感型设备)。
 


为什么选择 Cortex-M3

提供更高的性能和更丰富的功能

于 2004 年引进、最近通过新技术进行了更新并更新了可配置性的 Cortex-M3,是专门针对微控制器应用开发的主流 ARM 处理器。

性能和能效 

Cortex-M3 处理器具有较高的性能和较低的动态功耗,因而能够提供领先的能效。将集成的睡眠模式与可选的状态保留功能相结合,Cortex-M3 处理器确保对于同时需要低能耗和出色性能的应用不存在折衷。

全功能

该处理器执行包括硬件除法、单周期乘法和位字段操作在内的 Thumb®-2 指令集以获取最佳性能和代码大小。Cortex-M3 NVIC 在设计时是高度可配置的,最多可提供 240 个具有单独优先级、动态重设优先级功能和集成系统时钟的系统中断。

丰富的连接

通过功能与性能的组合,基于 Cortex-M3 的设备可高效处理多个 I/O 通道和协议标准,如 USB OTG (On-The-Go)。


ARM Cortex-M3 规范

<tr class="alt"> <tr class="alt"> <tr class="alt"> <tr class="alt"> <tr class="alt"> <tr class="alt">
ARM Cortex-M3 功能
ISA 支持 Thumb® / Thumb-2
管道 3 阶段
性能效率 3.32 CoreMark/MHz* - 1.25 至 1.50 DMIPS/MHz**
内存保护 带有子区域和后台区域的可选 8 区域 MPU
中断 不可屏蔽的中断 (NMI) + 1 到 240 个物理中断
中断优先级 8 到 256 个优先级
唤醒中断控制器 最多 240 个唤醒中断
睡眠模式 集成的 WFI 和 WFE 指令和“退出时睡眠”功能。
睡眠和深度睡眠信号。
随 ARM 电源管理工具包提供的可选保留模式
位操作 集成的指令和位段
增强的指令 硬件除法(2-12 个周期)和单周期 (32x32) 乘法、饱和数学支持。
调试 可选 JTAG 和串行线调试端口。最多 8 个断点和 4 个检测点。
跟踪 可选指令跟踪 (ETM)、数据跟踪 (DWT) 和测量跟踪 (ITM)

* 请参见:http://www.eembc.org/benchmark/reports/benchreport.php?benchmark_seq=1432&suite=CORE

** 较低的结果是在关闭内联的情况下获得的(按照 dhrystone 的建议),较高的结果是在打开内联的情况下获得的(正如其他处理器体系结构报道的)。Dhrystone v2.1。

<tr class="alt">
ARM Cortex-M3 实现数据***
180ULL
7 轨,通常为 1.8v,25C)
90LP
(7 轨,通常为 1.2v,25C)
40G
9 轨,通常为 0.9v,25C)
动态功耗 149 µW/MHz 32 µW/MHz 7 µW/MHz
平面规划面积 0.43 mm2 0.12 mm2 0.03 mm2

*** 基本可用配置包括 1 IRQ + NMI,不包括 ETM、MPU 和调试


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 供应商的网站。


In this section you will find useful documentation, white papers and tutorials on ARM Cortex-M processors and related technologies. For further information including information on development tools, software, boards, and a device database, CMSIS and mBed visit the ARM Embedded Microsite.

ARM Connected Community

Cortex-M3 related blogs, discussions, technical content

Books

Definitive Guide to the ARM Cortex-M0
A comprehensive guide to programming and implementing the groundbreaking ARM Cortex-M0 processor
Definitive Guide to the ARM Cortex-M3
A comprehensive guide to programming and implementing the groundbreaking ARM Cortex-M3 processor

Documentation for Cortex-M device users

Software development tools for Cortex-M device users

Find Cortex-M based microcontrollers

Universities

Related User Guides and App Notes

Cortex-M0/3/4 Devices Generic User Guides

Instruction Timing Information

Architecture (requires registration)

ARM Application Notes

Keil Application Notes

DesignStart for Processor IP


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