ARM通用寄存器及状态寄存器详解

💡 原文中文,约4000字,阅读约需10分钟。
📝

内容提要

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指令集的混合使用,大小端控制域设置内存的字节顺序。

🏷️

标签

➡️

继续阅读