文章目录
Processor core registers
Description
1、General-purpose registers
R0-R12是用于数据操作的32位通用寄存器
2、Stack pointer
堆栈指针(SP)是寄存器R13
在线程模式下,控制寄存器的位[1]表示要使用的堆栈指针:
0:主堆栈指针(MSP)。这是重置值。
1:进程堆栈指针(PSP)。
复位时,处理器加载MSP,其值来自地址0x00000000。
3、Link register
链接寄存器(LR)是寄存器R14。它存储子程序、函数调用和异常的返回信息。复位时,处理器加载LR值0xFFFF
4、Program counter
程序计数器(PC)是寄存器R15。它包含当前程序地址。复位时,处理器向PC加载复位向量的值,该值位于地址0x00000004。复位时,该值的位[0]加载到EPSR T位中,并且必须为1。
5、Program status register
程序状态寄存器(PSR)组合:
(1)应用程序状态寄存器(APSR)
(2)中断程序状态寄存器(IPSR)
(3)执行程序状态寄存器(EPSR)
5.1 APSR(application program status register)
(1)N:负值或者更小标志,作用:运算结果是正数、0或者负数
(2)Z:零标志,运算结果是否为0
(3)C:进位或借位标志,加法是否进位,减法是否借位
(4)V: 溢出标志,是否会溢出
(5)Q:DSP溢出和饱和标志
5.2 IPSR(interrupt program status register)
记录中断状态,相应中断有自己编号
5.3EPSR(Execution program status register)
6、Exception mask registers
6.1 (PRIMASK)Priority mask register
可关闭所有异常,只剩下NMI和HardFault响应
6.2 Fault mask register
可关闭所有异常,只NMI响应
6.3 (BASEPRI)Base priority mask register
关闭优先级大于阈值的中断
7、CONTROL register
当处理器处于线程模式时,控制寄存器控制用于软件执行的堆栈和特权级别,并指示FPU状态是否处于活动状态。