【问题标题】:Where can I find the IRQ number in request_irq function?在 request_irq 函数中哪里可以找到 IRQ 号?
【发布时间】:2010-06-11 01:22:36
【问题描述】:

我正在学习 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);  

谢谢

【问题讨论】:

    标签: linux


    【解决方案1】:

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

    如果你有例如PCI 上的设备,但其 IRQ 由 PCI 协商并通过 Linux PCI 子系统可用。

    如果您有一些定制的有线设备,它的 IRQ 线通常是硬连线的,您应该询问定制设备的制造商,它连接到哪里以及它是什么 IRQ。

    否则,给自己买一份LDD3 的副本 - 这是值得的,并且会详细描述所有内容。

    【讨论】:

      【解决方案2】:

      如果你只有一个中断控制器,那么 irq 号就是硬件 IRQ 号。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-26
        • 2016-03-16
        相关资源
        最近更新 更多