代码之家  ›  专栏  ›  技术社区  ›  Engineer999

ARM 7嵌套中断混淆

  •  1
  • Engineer999  · 技术社区  · 6 年前

    我一直在读关于经典ARM 7微控制器的书。有两种类型的中断:IRQ和FIQ。FIQ允许更快的中断处理,并具有比IRQ更高的优先级。

    它指出,现代ARM版本具有嵌套中断。

    这实际上是否意味着ARM 7只能处理分配给MCU的2个中断,例如来自外部源的2个边缘触发中断,而不是更多?

    提前感谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sean Houlihane    6 年前

    ARM7很可能与向量中断控制器一起使用,向量中断控制器是一个与内核紧密耦合的组件,但没有与集成到异常模型或a类中断控制器中的Cortex-M(ARMv6-M、ARMv7-M和ARMv8-M)使用或集成的现代中断控制器紧密耦合。

    这种老式的矢量中断控制器将提供多个输入、屏蔽和优先级。它将向core发出IRQ输入,并提供一个core可以作为公共中断处理程序的一部分读取的地址,然后将其分支到特定于异常的处理程序。请注意,在体系结构级别上,只有一个IRQ中断,其中包含一个硬件辅助跳转表。

    ARM7也 允许 更简单的中断体系结构—为应用程序定制精确的实现。最琐碎(也可能不常见)的是将所有中断放在一起,并要求中断处理程序读取每个外围设备的中断状态,以发现挂起的是什么。这在今天看起来可能很粗糙,但在某种程度上仍然可以做到-您可以为每个I/O外围设备指定Rx和Tx中断,但可以将所有错误/溢出中断结合起来(因为任何这些意味着游戏结束)。

    软件和专用硬件处理特性之间的权衡就是一个例子,说明随着时间的推移,不断变化的实现成本如何影响设计决策。

    推荐文章