处理器寄存器
Cortex‐M3 处理器拥有 R0‐R15 的寄存器组。其中 R13 作为堆栈指针 SP。 SP 有两个,但在同一
时刻只能有一个可以看到,这也就是所谓的“ banked”寄存器。
R0-R12:通用寄存器
R0‐R12 都是 32 位通用寄存器,用于数据操作。但是注意:绝大多数 16 位 Thumb 指令只能访
问 R0‐R7,而 32 位 Thumb‐2 指令可以访问所有寄存器。
其中程序主要使用R0,R1,R2。入栈出栈时候自动压入与弹出,当使用更多寄存器时候编译器会自动添加压入更多寄存器。
R13堆栈指针:主堆栈指针(MSP);进程堆栈指针(PSP)
堆栈指针寄存器有两个,通常简单的程序只使用主堆栈指针(MSP),只有复杂的程序例如操作系统才用到两个指针。例如ucosii中操作系统内核和异常服务程序使用主堆栈指针(MSP),用户程序使用(PSP)就够了。