पर जीपीआईओ आईआरक्यू मैं AT91SAM9M10-EKES मूल्यांकन बोर्ड पर एक जीपीआईओ आईआरक्यू प्रोग्राम करने की कोशिश कर रहा हूं। मैंने सफलतापूर्वक आईआरक्यू पंजीकृत किया, और आईआरक्यू काम कर रहा है। हालांकि, कुछ इंटरप्ट छूट गए हैं। मैं 26 भेज रहा है, और मैं केवल 22.एआरएम आधारित एंबेडेड लिनक्स
कोड प्राप्त:
static irqreturn_t wiegand_interrupt(int irq, void *dev_id){
atomic_inc(&counter);
printk(KERN_WARNING "IRQ recieved, counting... %d\n",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 %d\n",AT91_PIN_PA21, err);
goto fail;
}
err = request_irq(irq1,wiegand_interrupt,0 ,"wiegand",NULL);
irq2 = gpio_to_irq(AT91_PIN_PA20);
if (irq2 < 0) {
err = irq2;
printk("Unable to get irq number for GPIO %d, error %d\n",AT91_PIN_PA21, err);
goto fail;
}
err = request_irq(irq2,wiegand_interrupt,0 ,"wiegand",NULL);
इस पूरे ड्राइवर नहीं है, लेकिन यह वास्तविक बात यह है कि आईआरक्यू से संबंधित है। अगर किसी को कोड में कोई समस्या दिखाई देती है, या मुझे पता है कि मैं 4 इंटरप्ट क्यों खो देता हूं, तो कृपया उत्तर दें। मैं घंटों के लिए इस पर अटक कर रहा हूँ ... :(
धन्यवाद। रेमन।
प्रिंटक कारण है !! यह काम करता हैं। धन्यवाद। – stdcall
@ लोंगफील्ड: क्या आप कृपया इसका उत्तर दे सकते हैं http://stackoverflow.com/questions/24608817/interrupt-on-gpio-line-is-not-being- पता नहीं? –