linux-device-driver – 基于ARM的嵌入式Linux上的GPIO IRQ
发布时间:2020-12-14 00:59:40 所属栏目:Linux 来源:网络整理
导读:我正在尝试在AT91SAM9M10-EKES评估板上编程GPIO IRQ. 我成功注册了IRQ,IRQ正在运行. 但是,有些中断被遗漏了.我送26,而我只得到22. 代码: static irqreturn_t wiegand_interrupt(int irq,void *dev_id){ atomic_inc(counter); printk(KERN_WARNING "IRQ reci
我正在尝试在AT91SAM9M10-EKES评估板上编程GPIO IRQ.
我成功注册了IRQ,IRQ正在运行. 但是,有些中断被遗漏了.我送26,而我只得到22. 代码: static irqreturn_t wiegand_interrupt(int irq,void *dev_id){ atomic_inc(&counter); printk(KERN_WARNING "IRQ recieved,counting... %dn",atomic_read(&counter)); return 0; } irq1 = gpio_to_irq(AT91_PIN_PA21); if (irq1 < 0) { err = irq1; printk("Unable to get irq number for GPIO %d,error %dn",AT91_PIN_PA21,err); goto fail; } err = request_irq(irq1,wiegand_interrupt,"wiegand",NULL); irq2 = gpio_to_irq(AT91_PIN_PA20); if (irq2 < 0) { err = irq2; printk("Unable to get irq number for GPIO %d,err); goto fail; } err = request_irq(irq2,NULL); 这不是整个驱动程序,但这是处理IRQ的实际部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |