1

我是 linux 新手,最近在看一些与中断相关的 linux 驱动程序代码。我从本教程http://www.redhat.com/mirrors/LDP/LDP/tlk/dd/interrupts.html开始,但不确定我是否理解正确。

以下是我认为我从Fig.7.1得到的事实:

  1. PIC1 左侧的箭头线连接到CPU 上的中断引脚
  2. PIC1右侧的0~7是指中断控制器引脚
  3. 每个中断控制器引脚都连接到 PCI 插槽上的硬件设备

问题:

  1. “CPU上的中断引脚”与“中断线”相同吗?即函数中的'irq'参数:

    int request_irq(unsigned int irq, (*handler)(), ...)

  2. 如果是这样,那么中断处理函数“(*handler)()”将必须是一个“组合 ISR 函数”,它完全处理中断源 0~7,对吗?

  3. 如果不是,那么“irq”是什么,是“中断控制器引脚”吗?

  4. 物理上连接到中断控制器引脚 0~7 的设备如何产生中断?通过提高引脚上的电压,写入 PIC 寄存器?PIC中的中断状态寄存器如何知道当前中断是哪个引脚?

对不起,如果有些问题是幼稚的。

谢谢,

4

1 回答 1

0
  1. 'interrupt pin on CPU',与'interrupt line'相同,但与函数中的irq参数不完全相同。
  2. irq 是分配给每个中断引脚的编号。该信息可以从处理器硬件手册中定义的中断向量表中读取。
于 2012-12-17T05:44:06.700 回答