快速链接:
.
个人博客笔记导读目录(全部)
- 付费专栏-付费课程 【购买须知】:
- 【精选】ARMv8/ARMv9架构入门到精通-[目录]
说明:
本文总结的仅限于armv8-M架构,实现main extension,支持Trustzone
Cortex-M 处理器系列基于 M-Profile 架构,可为深度嵌入式系统提供低延迟和高度确定性的操作。我们最新一代的 Cortex-M 处理器是 Cortex-M55。Cortex-M55 是第一款基于 Armv8.1-M 架构的处理器,采用向量处理扩展 Arm Helium 技术。Cortex-M55 为下一代小型嵌入式设备(包括可穿戴设备、智能扬声器等)带来更高水平的机器学习和信号处理性能。
Cortex-M 处理器旨在支持微控制器市场
其他 ARM 内核的寄存器和 ISA变化
不同的模式和异常模型
不同的系统控制/内存布局
ARMv8-M 是 32 位加载/存储架构
编程模型
两种模式: Thread mode 和 Handler mode
在Thread mode下又有2个执行级别: privileged 和 Unprivileged
掩码(MASK)寄存器:
(1)、异常掩码寄存器:PRIMASK
(2)、优先级掩码寄存器:BASEPRI.
(3)、错误掩码寄存器:FAULTMASK
控制寄存器:CONTROL
2个栈指针限制寄存器:MSPLIM 和 PSPLIM
程序状态寄存器:Program Status Register (XPSR), 包含:
(1)、Application Program Status Register (APSR).
(2)、Interrupt Program Status Register (IPSR).
(3)、Execution Program Status Register (EPSR)
除此之外,还有一些memory-mapped的寄存器
IPSR
值是0IPSR
保存着正在处理的异常的异常号IPSR
值是1IPSR
, 不会生效的主要是EPSR.T
比特位
CONTROL.SPSEL
, 当PE在Thread mode时CONTROL.SPSEL
可用于选择栈指针所有 Cortex-M 处理器都支持称为 Thumb 的指令集。 当 Thumb-2 技术可用时,完整的 Thumb 指令集在扩展时变得相当大。 但是,不同的 Cortex-M 处理器支持 Thumb ISA 中可用的不同指令子集,如下图所示:
实施了安全扩展后,下列寄存器都是banked by security:
MRS
和MSR
指令编码中的bit[7]表示操作的是哪组寄存器(Secure or NON-Secure)
cortex-A Trustzone 和 cortex-M Trustzone的对比:
在cortex-M上,双系统的切换,使用的是 Secure Gateway (SG) 指令,但只允许在特殊的memory上调用SG,即使NSC(non-secure callable)
cortex-M中内置一个Nested Vectored Interrupt Controller (NVIC) 中断控制器
cortex-M的异常和中断具有以下优先级