虚假中断处理

时间:2017-03-13 13:33:17

标签: linux linux-kernel linux-device-driver interrupt interrupt-handling

我正在使用p2041和xr17v358芯片进行串行接口。当我运行我的测试应用程序时,我正在显示禁用irq消息。之后我在我的isr中添加了一些调试打印,所以我知道即使我的卡没有生成中断,它也会连续调用isr 我只想知道虚假中断。什么是虚假中断?如何在基于linux的系统中处理它?虚假中断是硬件还是软件的问题?如何知道虚假中断的来源?

1 个答案:

答案 0 :(得分:1)

我想在此处添加信息,手册中提到了虚假中断。

来自arm技术手册http://www.cl.cam.ac.uk/research/srg/han/ACS-P35/zynq/arm_gic_architecture_specification.pdf

1.4.4 Spurious interrupts

It is possible that an interrupt that the GIC has signaled to a processor is no longer required. If this happens, when
the processor acknowledges the interrupt, the GIC returns a special Interrupt ID that identifies the interrupt as a
spurious interrupt. Example reasons for spurious interrupts are:
• prior to the processor acknowledging an interrupt:
— software changes the priority of the interrupt
— software disables the interrupt
— software changes the processor that the interrupt targets
• for a 1-N interrupt, another target processor has previously acknowledged that interrupt.