我是linux的新手,最近看了一些与中断相关的linux驱动程序代码 . 我从本教程http://www.redhat.com/mirrors/LDP/LDP/tlk/dd/interrupts.html开始,但不确定我是否理解它是正确的 .
以下是我认为从 Fig.7.1 得到的事实:
199 PIC1左侧的箭头线连接到 interrupt pin on the CPU
PIC1右侧的
-
0~7指的是 interrupt controller pins
-
每个中断控制器引脚连接到PCI插槽上的硬件设备
问题:
- 'CPU上的中断引脚',是否与'中断线'相同?即函数中的'irq'参数:
int request_irq(unsigned int irq,(* handler)(),...)
-
如果是这样,那么中断处理函数'(* handler)()'必须是一个'组合ISR函数',它完全处理0~7个中断源,对吧?
-
如果没有,那么什么是'irq',它是'中断控制器引脚'而不是?
-
物理连接到中断控制器引脚0~7的设备如何产生中断?通过提高引脚电压,写入PIC寄存器? PIC中的中断状态寄存器如何知道哪个引脚是当前中断?
对不起,如果有些问题是天真的 .
谢谢,
1 回答
'interrupt pin on CPU',与'interrupt line'相同,但与函数中的irq参数不完全相同 .
irq是分配给每个中断引脚的编号 . 可以从处理器硬件手册中定义的中断向量表中读取此信息 .