您能告诉我硬件/驱动程序是如何引起中断的吗?在SMP中,哪个CPU会被中断?如果IRQ被多个设备共享,内核如何识别哪个设备引起了中断。
/Ganesh
发布于 2010-12-11 21:26:35
传统上,有一条从设备到中断控制器的实际中断线路,当中断线路为高(或低,或沿)时,会生成中断,CPU开始执行中断处理程序。
在现代系统中,中断往往是总线上发送给中断控制器的消息(或者可能有几个)。
在更多细节方面,你需要更具体,细节根据你谈论的硬件类型而有所不同。
发布于 2012-06-27 16:21:49
中断处理程序也称为ISR,是操作系统设备驱动程序的一部分。在操作系统中,每个irq号代表来自中断控制器的一条中断线。
设备硬连线到中断控制器,如果设备中产生中断,中断控制器将向相应的CPU发出信号。中断目标CPU可在中断控制器中针对每个中断线路进行编程。
为了在硬件中共享中断号,如ARM中的GPIO,中断控制器或设备应为实际中断号提供额外的寄存器。此外,ISR应查询该寄存器以获取真实IRQ号。
https://stackoverflow.com/questions/4406729
复制相似问题