寄存器
(1)通用寄存器
R0-12 : 通用寄存器。其中 , R0-R7 为Low Register,绝大多数16位Thumb指令只能访问R0‐R7,而 32位Thumb‐2指令可以访问所有寄存器 。R8-R12为High Register 。
R13(SP) : 堆栈指针 ,包括MSP和PSP,任何时刻只能使用其中的一个。MSP为缺省的堆栈指针。在Handler模式下只能使用MSP做为堆栈指针。堆栈地址总是字(32位)对齐的。
R14(LR) :连接寄存器,用于函数调用时保存返回地址,因此,在只有1级函数调用时无需入栈出栈此寄存器。
R15(PC) : 程序计数寄存器 。
(2)特殊功能寄存器
操作模式和特权级别
(1)操作模式
Handler模式和线程模式,引入这两个模式的原因,是为了区别中断和普通程序。
(2)特权级别
特权级和用户级。从特权级进入用户级只要改变相应的特殊寄存器,从用户级进入特权级需要Trap(SVC或其他软中断)后改变相应的特殊寄存器。Handler模式只能在特权级下运行。
内建的嵌套向量中断控制器
(1)可嵌套中断支持
高优先级中断可抢占低优先级中断。
(2)向量中断支持
硬件直接从中断向量表中定位ISR地址并调用,无需软件的参与。向量表可由软件重定位。
(3)动态优先级调整支持
软件可以在运行时更改中断的优先级。
(4)中断延迟大大缩短
中断发生时自动入栈关键寄存器以及中断返回时自动出栈关键寄存器,“咬尾中断“和”晚到中断“。
(5)中断可屏蔽
既可以屏蔽优先级低于某个阈值的中断,也可以全体封杀。
存储器映射
总线接口
Cortex‐M3 内部有若干个总线接口,以使 CM3 能同时取址和访内(访问内存)。
MPU
Cortex‐M3 有一个可选的存储器保护单元。
指令集
Cortex‐M3只使用 Thumb‐2 指令集。