【发布时间】:2017-02-25 08:37:51
【问题描述】:
您好,我正在开发 Xilinx FPGA 和 Intel PC 之间的 PCIe 通信... 我已经编写了一个内核模块(linux 驱动程序),我正在使用 INTx 中断。 我正面临中断处理的问题......
加载内核模块之前:
来自 lspci:INT A-->11
从配置读取:INT A-->11
来自 /proc/interrupts : 什么都没有,因为 irq 没有注册
加载内核模块后:
来自 lspci:INT A-->16
从配置读取:INT A-->11
从 /proc/interrupts : INT 11 注册
当我在 FPGA 中运行程序时,它正在向 IRQ-16 发送中断并说没有身体在意,它被禁用了。
在我的 module_init 中:
request_irq(dev->gIrq, XPCIe_IRQHandler, IRQF_SHARED, gDrvrName, gDev));
我的中断处理程序:
static irqreturn_t XPCIe_IRQHandler(int irq, void *dev_id, struct pt_regs *regs)
{ return IRQ_HANDLED; }
所以任何人都可以说出问题可能是什么......
【问题讨论】:
标签: linux-device-driver kernel-module pci-e