ARM寄存器
CM3拥有通用寄存器组R0~R15和一些特殊寄存器
通用寄存器组R0~R15
**
R13:SP堆栈指针寄存器
功能:指向堆栈的栈顶
详解:
1)异常模式发生时,程序把通用寄存器压入堆,SP一直指向栈顶的位置。返回时再出栈,保证程序状态的完整性。大部分情况下,只要程序在执行,堆栈就会被建立,而SP指向堆栈的栈顶位置。
2)有MSP 和PSP(两者只需一个,不能同时使用,默认MSP)。
MSP :主堆栈指针,系统用。PSP : 进程堆栈指针,个人堆栈指针。
R14:LR连接寄存器
功能:保存断点地址。
详解:
1)用来保存子程序的返回地址;
当调用子程序时,R14保存子程序的返回地址。子程序返回时,把R14的值复制到程序计数器PC,实现子程序的返回。
2)当异常发生时,用R14保存异常返回的地址。
R14中保存的值等于异常发生时程序计数器PC的值减4(因为cortex-m3采用3级指令流水线)。