如何在 aarch64 gicv3 中读取中断状态活动、挂起、活动挂起等?

问题描述

如何在aarch64中读取特定INTID的中断状态? 我想知道 FIQ 中断(例如 INT 208)的状态(inactive/active/pending/active-pending)。

解决方法

有“ARM® 通用中断控制器,架构规范”文档。

它描述了 GIC 的寄存器结构并包含您要查找的信息

GICD_ICACTIVERS 为每个中断提供一个清除活动位 GIC 支持。写入清除有效位 相应的中断。这些寄存器用于保存和 恢复 GIC 状态。

[31:0] 清除有效位 对于每个位:
Reads
0 对应的中断没有激活。
1 对应的中断有效。 写入
0 无效。
1 关闭相应的中断,如果 中断有效。如果中断已停用,则 写没有效果。向该位写入 1 后,后续读取 位返回值 0。