ARMv7-A小系统实践(二):处理器模式、寄存器组与CPSR

本章记录什么

这一章解释 ARMv7-A 程序最先遇到的一组概念:处理器模式、可见寄存器、banked 寄存器、CPSR 和 SPSR。目标不是背诵一张寄存器表,而是能够回答三个工程问题:为什么启动代码要多次切换模式设置 sp,为什么 IRQ 到来后同名的 lrsp 会指向另一份物理寄存器,以及异常返回时为什么必须同时恢复程序地址和处理器状态。

在这一章之前做了什么

上一章确定了整个小系统的能力边界和资料分工,但还没有进入任何一条具体执行路径。现在从 CPU 的“当前身份”开始,因为启动、异常和调度最终都要落到寄存器可见性上。若这一层没有建立,看到 cps #0x12mrs r0, spsrrfeia 时只能记住指令表面,无法解释状态为什么能够恢复。

本章会先建立模式与寄存器组的基础,再把规则放进启动代码和一次 IRQ 中推演,最后列出可以在调试器里验证的观察点。任务切换只在结尾用于对比,不会提前混入。


:D 一言句子获取中...