ARM Cortex-M 技术每个 Cortex-M 系列处理器都有其特定的优点,通过一些基本技术,使得 Cortex-M 处理器适用于广泛的嵌入式应用领域。
CMSISARM 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 库还提供了各种辅助函数,使中断控制变得更简单。 该体系结构为每一个可编程的中断或异常提供 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 处理器的实现中还应用了各种优化技术,使得中断处理更高效,系统响应速度更快: 堆栈弹出抢占 - 如果在从堆栈中弹出异常的过程中出现另一个异常,处理器将放弃堆栈弹出操作,并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC 以具有确定性的方式实现了缩短延迟。 迟到 - 如果在优先级较低的中断推入堆栈的过程中出现优先级较高的中断,处理器会提取新的矢量地址,并先处理优先级较高的中断。 通过这些优化,随着中断负载的增加,中断开销会减少,从而使嵌入式系统能实现较高的中断处理吞吐量。 |
|
来自: Jessica小馆子 > 《嵌入式技术》