我在哪里可以找到request_irq函数中的IRQ号码?

时间:2010-06-11 01:22:37

标签: linux

我正在学习Linux中的设备驱动程序编程。我想知道在哪里可以找到IRQ号码作为request_irq函数中的“irq”参数?

int request_irq (unsigned int irq,
                 void (*handler) (int, void *, struct pt_regs *),
                 unsigned long irqflags,
                 const char *devname,
                 void *dev_id);  

由于

2 个答案:

答案 0 :(得分:2)

您似乎从错误的一方学习设备编程 - 没有设备。

如果您有例如PCI上的设备,然后它的IRQ由PCI协商,可通过Linux PCI子系统获得。

如果你有一些自定义有线设备,它的IRQ线通常都是硬连线的,你应该问那些自定义设备连接到哪里的人以及它是什么IRQ。

否则给自己买一份LDD3 - 这是值得的,并详细描述了所有这些。

答案 1 :(得分:1)

如果您只有一个中断控制器,则irq编号只是硬件IRQ编号。

如果您有多个PIC,则需要查看电路板特定的初始化包含文件,以查看您的设备所连接的特定PIC的偏移量,并将其添加到硬件IRQ编号中。

它通常是一个名为irqs.h的包含文件,位于板特定文件的include /目录中。例如。对于基于Arm的Bcmring板,文件在linux / arch / arm / mach-bcmring / include / mach / irqs.h