cortex-M3处理器拥有R0-R15的寄存器组。其中R13作为堆栈指针SP。SP有两个,但在同一时刻只能有一个可以看到,这也就是所谓的“banked”寄存器。

R0-R12:通用寄存器
R0-R12都是32位通用寄存器,用于数据操作。但是注意:绝大多数16位Thumb指令只能访问R0-R7,而32位Thumb-2指令可以访问所有寄存器。
Blanked R13:两个堆栈指针
cortex-m3拥有两个堆栈指针,然而它们是banked,因此任一时刻只能使用其中的一个。
(1)主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)
(2)进程堆栈指针(PSP):用用户的应用程序代码使用。
堆栈指针的最低两位永远是0,这意味着堆栈总是4字节对齐的。
R14:连接寄存器
当呼叫一个子程序时,由R14存储返回地址
R15:程序计数寄存器
指向当前的程序地址。如果修改它的值,就能改变程序的执行流(很多高级技巧就在这里面)
特殊功能寄存器
cortex-m3还在内核水平上搭载了若干特殊功能寄存器,包括
程序状态字节寄存器组(PSRs)
中断屏蔽寄存器组(PRIMASK,FAUL TMASK,BSAEPRI)
控制寄存器(CONTROL)

3841

被折叠的 条评论
为什么被折叠?



