阅读“ARM®通用中断控制器架构版本1.0架构规范”我读到“对于嵌套中断,中断完成的顺序必须与中断确认的顺序相反。即,写入的顺序。 ICCEOIR必须与ICCIAR的读取顺序相反。“我的第一个问题是规范没有指定当以非反向顺序写入ICCEOIR时的行为,也没有将其分类为UNPREDICTABLE。如果我这样做会有什么问题?
但是,我发现无论确认顺序如何,当我用活动中断的id写ICCEOIR时,该中断变为非活动状态。我在Xilinx Zynq-7000上做这个。我应该期待这个实现吗?
答案 0 :(得分:1)
要回答第二个问题,请参阅GIC规范同一部分的前面部分:
写入此寄存器会导致GIC更改其状态 确定中断:
- 处于非活动状态,如果处于活动状态
- 挂起,如果它处于活动状态且待定。
无论确认顺序如何,预期这种情况似乎都是合理的,无论无序完成可能有什么其他影响。