我是 linux 新手,最近在看一些与中断相关的 linux 驱动程序代码。我从本教程http://www.redhat.com/mirrors/LDP/LDP/tlk/dd/interrupts.html开始,但不确定我是否理解正确。
以下是我认为我从Fig.7.1得到的事实:
- PIC1 左侧的箭头线连接到CPU 上的中断引脚
- PIC1右侧的0~7是指中断控制器引脚
- 每个中断控制器引脚都连接到 PCI 插槽上的硬件设备
问题:
“CPU上的中断引脚”与“中断线”相同吗?即函数中的'irq'参数:
int request_irq(unsigned int irq, (*handler)(), ...)
如果是这样,那么中断处理函数“(*handler)()”将必须是一个“组合 ISR 函数”,它完全处理中断源 0~7,对吗?
如果不是,那么“irq”是什么,是“中断控制器引脚”吗?
物理上连接到中断控制器引脚 0~7 的设备如何产生中断?通过提高引脚上的电压,写入 PIC 寄存器?PIC中的中断状态寄存器如何知道当前中断是哪个引脚?
对不起,如果有些问题是幼稚的。
谢谢,