我正在学习Linux下的设备驱动程序编程。我想知道在哪里可以找到在request_irq函数中用作" IRQ“参数的irq号?
int request_irq (unsigned int irq,
void (*handler) (int, void *, struct pt_regs *),
unsigned long irqflags,
const char *devname,
void *dev_id); 谢谢
发布于 2010-06-11 20:10:28
你似乎是从错误的角度学习设备编程的--没有设备。
例如,如果你的设备在PCI上,那么它的IRQ是由PCI协商的,并且可以通过Linux PCI子系统获得。
如果你有一些定制的有线设备,通常它的IRQ线路是硬连线的,你应该问问定制设备的制造者,它是在哪里连接的,它是什么IRQ。
否则,给自己买一份LDD3 --这是值得的,并详细描述了所有这些内容。
发布于 2011-10-05 14:45:00
如果只有一个中断控制器,则irq号就是硬件IRQ号。
如果您有多个PIC,则需要查看特定于主板的初始化包含文件,以了解设备连接到的特定PIC的偏移量,并将其添加到硬件IRQ号中。
它通常是一个名为irqs.h的包含文件,位于特定线路板文件的include/目录中。例如,对于基于Arm的Bcmring板,该文件在linux/arch/arm/mach-bcmring/include/mach/irqs.h中
https://stackoverflow.com/questions/3019616
复制相似问题