ARM CORTEX-M3 内核架构理解归纳IC解密
IC解密1)寄存器组
Cortex-M3内核共有19组32位寄存器:
R0——R12(通用寄存器);
低寄存器组R0——R7
32位Thumb-2指令与16位Thumb指令均可访问
高寄存器组R8——R12
32位Thumb-2指令与极少数16位Thumb指令可访问
R13(堆栈指针寄存器);
IC解密主堆栈寄存器MSP(main-SP)/进程堆栈寄存器PSP(Process-SP)同一时间只能使用其中一个。MSP供操作系统内核及中断(异常)处理子程序使用,PSP只供用户的应用程序代码使用(详细使用详见3、嵌套向量中断控制器(NVIC)的总结)。
堆栈指针是4字节对齐的,故最低两位永远是00;
R14(连接寄存器)
用于存储程序返回的地址及PC的返回地址;
R15(程序寄存器)指向当前程序执行的地址;
2)特殊功能寄存器组
xPSR(程序状态字寄存器组),32位,可分为三个寄存器分别进行访问,也可以PSR或xPSR的名字直接组合访问。
应用程序PSR(APSR)
中断号PSR(IPSR)
执行PSR(EPSR)
中断屏蔽寄存器
PRIMASK 单一比特位,置位后,除NMI与硬fault外,其他中断都不响应;
FAULTMASK 单一比特位,置位后,除NMI外,其他中断都不响应;
BASEPRI 共有9位,中断号小于等于该寄存器设置值的中断都不响应;
控制寄存器control
Control[0] 0决定特权级线程模式;1用户级线程模式;
Control[1] 0主堆栈;1进程堆栈;
控制寄存器只能在特权级模式下改写,handler模式永远是特权级,且只允许使用主堆栈MSP
复位后,处理器进入特权级+线程模式下;

芯片解密