我使用P2041和XR17V358芯片作为串行接口。当我运行我的测试应用程序时,我显示禁用IRQ消息。在那之后,我在我的isr中添加了一些调试输出,这样我就知道即使我的卡没有产生中断,它仍然在不断地调用isr。
我只想知道假中断。什么是假中断?如何在基于linux的系统中处理它?假中断是硬件还是软件的问题?如何知道虚假中断的来源?
最佳答案
我想在这里补充一些信息,手册中提到了伪中断。
摘自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.
关于linux - 虚假中断处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42764945/