ARM通用寄存器及状态寄存器详解
内容提要
ARM通用寄存器在处理器中起着重要作用,可用作暂存器、存储输入数据和临时结果,也可用作索引和访问存储器。不同ARM架构中广泛应用ARM通用寄存器,如stm32芯片、MK60芯片、GD32、AT32和N32系列。寄存器模型包括通用目的寄存器R0-R7和R8-R12,栈指针R13,链接寄存器R14和程序计数器R15。CortexR5继承了ARM7架构下的系统模型,有多组工作模式。CortexA53中,r0-r7用于参数传递和返回结果,r8用于间接结果位置,r9-r15用于保存临时结果,r16-r17用于动态链接,r18为专用寄存器,r19-r28为被调用者保存的寄存器,r29为FP寄存器,r30为链接寄存器,SP为栈指针。CPSR寄存器用于表示当前程序运行的状态、模式、运算结果状态和中断状态。
关键要点
-
ARM通用寄存器在处理器中起着重要作用,既可作为暂存器,也可存储输入数据和临时结果。
-
CortexM3/M4架构中,ARM通用寄存器被广泛应用于各种应用,多个厂商采用此架构。
-
寄存器模型包括通用目的寄存器R0-R7、R8-R12,栈指针R13,链接寄存器R14和程序计数器R15。
-
CortexR5继承ARM7架构,具有多组工作模式,用户模式和系统模式共享寄存器。
-
CortexA53中,r0-r7用于参数传递,r8用于间接结果位置,r9-r15用于保存临时结果。
-
CPSR寄存器表示当前程序运行状态,包括模式、运算结果状态和中断状态。
-
CPSR的低五位控制当前CPU模式,设置不同模式以处理异常和分层管理。
-
CortexM3/4有独立的中断屏蔽寄存器,CortexR5和A53系列中也有中断控制域。
-
指令选择域支持ARM和Thumb指令集的混合使用,大小端控制域设置内存的字节顺序。