Hello iam開發Xilinx FPGA和Intel PC之間的PCIe通信...我寫了一個內核模塊(linux驅動程序),我使用INTx中斷。 我面臨中斷處理的問題....驅動程序中的PCI Express中斷
加載內核模塊:
從lspci的:INT A - > 11
從配置看:INT A - > 11
從/ proc /中斷:沒有,因爲IRQ不registerd
加載內核模塊後:
從lspci的:INT A - > 16
從配置讀:INT A - > 11
從/ proc /中斷:INT 11 registerd
當我運行在程序它正在向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; }
所以任何人都可以說,問題可能是什麼....
而在最新的內核中,你不應該這樣做,而是使用'pci_alloc_irq_vectors()'&Co來代替。 – 0andriy