ARMv7-A小系统实践(七):GIC、定时器与一次完整的IRQ

本章记录什么

这一章沿着一枚定时器中断走完整条链:Private Timer 产生事件,GIC Distributor 和本核 CPU Interface 判断是否交付,处理器进入 IRQ,软件读取 IAR 完成应答,设备 handler 清除中断源,最后把原始 IAR 写回 EOIR。目标是理解一个状态机,而不是记住几组地址。

在这一章之前做了什么

上一章已经能够安全进入和离开 IRQ,但入口正确并不代表设备中断能够重复工作。还需要解决三层使能、优先级、目标 CPU、Pending/Active 状态以及设备侧状态。任何一层遗漏,现象都可能只是“没有输出”或“只进入一次”。

本章会先解释 SGI、PPI、SPI 和 GIC 两大组成,再用 ID29 建立周期 tick。所有关键寄存器语义、分发器骨架和排错顺序都在文章内展开,不要求读者另开工程才能补齐上下文。


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