ARM A9 GIC中断完成顺序

问题描述:

阅读“ARM®通用中断控制器体系结构版本1.0体系结构规范”我读到“对于嵌套中断,中断完成顺序必须与中断确认顺序相反。是,写给ICCEOIR的顺序必须与ICCIAR的顺序相反。“我的第一个问题是,规范没有规定当ICCEOIR没有以相反顺序写入时发生的行为,也没有将其分类为UNPREDICTABLE。如果我这样做会是什么问题?ARM A9 GIC中断完成顺序

但是,我发现无论确认的顺序如何,当我使用活动中断的ID写入ICCEOIR时,该中断变为非活动状态。我正在Xilinx Zynq-7000上做这件事。我应该期待这个实现吗?

要回答你的第二个问题,更早看到GIC规格同款:

写该寄存器导致GIC改变 识别中断的状态:

  • 以激活
  • 为未激活状态,如果它处于活动状态并处于等待状态。

期待这不论确认订单的发生似乎是合理的,无论什么其他作用乱完成订单可能。

+0

谢谢你的回答。是的,我得出了同样的结论,因为我不打算随时移植我的系统,所以我会按照您的建议。然而,GICv2规范已经将无序完成的行为归类为UNPREDICTABLE,所以也许这只是他们在v1规范中遗漏的东西。 – joseCM