1

您能否让我知道硬件/驱动程序如何引发中断?在 SMP 中,哪个 CPU 被中断?如果 IRQ 被多个设备共享,内核如何识别是哪个设备导致了中断。

/甘尼什

4

2 回答 2

1

传统上,有一条实际的中断线从设备运行到中断控制器,当它为高电平(或低电平,或处于边缘)时,会生成一个中断并且 CPU 开始执行中断处理程序。

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

就更多细节而言,您需要更具体,细节取决于您所谈论的硬件类型。

于 2010-12-11T13:26:34.727 回答
0

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

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

为了在硬件中共享中断号,如 ARM 中的 GPIO,中断控制器或设备应为实际中断号提供额外的寄存器。此外,ISR 应该咨询该寄存器以获得真正的 IRQ 编号。

于 2012-06-27T08:21:48.547 回答