ARM 7嵌套中断混乱

时间:2018-02-22 12:41:10

标签: arm interrupt interrupt-handling irq arm7

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

它声明现代ARM版本具有嵌套中断。

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

提前致谢

1 个答案:

答案 0 :(得分:1)

ARM7很可能已经与向量中断控制器一起使用 - 一个紧密耦合到内核的组件,但没有像现代中断控制器那样紧密耦合或与Cortex-M集成(ARMv6-M,ARMv7-M)和ARMv8-M) - 它们集成在异常模型或A级中断控制器中。

这种较旧类型的向量中断控制器将提供多个输入,具有屏蔽和优先级。它会向内核引发IRQ输入,并提供一个核心可以作为公共中断处理程序的一部分读取的地址 - 然后分支到异常特定的处理程序。请注意,在架构级别,只有一个IRQ中断 - 包含硬件辅助跳转表。

ARM7还允许更简单的中断架构 - 为应用程序定制的确切实现。最琐碎的(也许是不常见的)将OR所有中断组合在一起,并要求中断处理程序读取每个外设的中断状态以发现待处理的内容。这在今天似乎非常粗糙,但它仍然在某种程度上完成 - 您可能为每个I / O外设专用Rx和Tx中断,但是将所有错误/溢出中断组合在一起(因为任何这些都意味着游戏结束)

软件与功能的专用硬件处理之间的权衡是一个例子,说明实施成本的变化如何影响设计决策。

相关问题