1
我正在爲在ARM上運行的設備編寫驅動程序。發出中斷時不會調用中斷處理程序
下面是探針())的代碼和interrupt_handler(:
static irqreturn_t interrupt_handler(int irq, void *dev_id){
printk(KERN_ALERT "MY_IRQ: Interrupt handler executed!\n");
return IRQ_HANDLED;
}
static int mydevice_probe (struct platform_device *pdev) {
printk("-----------------------------------------PROBE CALLED \n");
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if(r == NULL) {
printk("platform_get_resource failed\n");
return -ENODEV;
}
irq = platform_get_irq(pdev,0);
if (irq < 0) {
printk("platform_get_irq failed\n");
return -ENODEV;
}
ret = request_irq(irq, interrupt_handler, IRQF_SHARED, pdev->name, &dev_num);
ret = misc_register(&mydevice_miscdevice);
return 0;
}
的request_irq
成功返回0和IRQ#17被分配給駕駛員。 問題是,發出中斷時,中斷處理程序不會執行。
有什麼想法?我錯過了什麼?
很多,非常感謝!
我剛剛發現了一秒之前。 是的,因爲我沒有正確啓用中斷。 現在它工作正常。 謝謝。 –