有关中断和中断处理的问题

时间:2010-12-10 07:52:50

标签: linux linux-kernel interrupt interrupt-handling

您能告诉我硬件/驱动程序如何引发中断吗?在SMP中,哪个CPU被中断?   如果IRQ由多个设备共享,则内核如何识别导致中断的设备。

/内甚

2 个答案:

答案 0 :(得分:1)

传统上存在从设备到中断控制器的实际中断线,当它处于高电平(或低电平或边沿)时,会产生中断并且CPU开始执行中断处理程序。

在现代系统中,中断往往是总线上的消息,这些消息被发送到中断控制器(或者可能有几个)。

就更多细节而言,您需要更具体,细节会根据您所谈论的硬件类型而有所不同。

答案 1 :(得分:0)

中断处理程序也称为ISR,是OS中设备驱动程序的一部分。在OS中,每个irq编号表示来自中断控制器的中断线。

设备硬连线到中断控制器,如果设备中产生中断,中断控制器将向相应的CPU发出信号。中断目标CPU可在中断控制器中为每个中断线编程。

为了在硬件中共享中断号,如ARM中的GPIO,中断控制器或设备应为实际中断号提供额外的寄存器。此外,ISR应查阅该登记册以获取真实的IRQ号码。