我正在学习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);
由于
答案 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