我在學習linux 驅動中中斷處理的時候,看到mini2440 自帶的按鍵驅動中的終端申請函數的,flag形參為什么是 IRQ_TYPE_EDGE_BOTH(中斷觸發方式)?
代碼如下:
static int s3c24xx_buttons_open(struct inode *inode, struct file *file)
{
int i;
int err = 0;
for (i = 0; i < sizeof(button_irqs)/sizeof(button_irqs[0]); i++) {
if (button_irqs.irq < 0) {
continue;
}
err = request_irq(button_irqs.irq, buttons_interrupt, IRQ_TYPE_EDGE_BOTH,
button_irqs.name, (void *)&button_irqs);
if (err)
break;
}
if (err) {
i--;
for (; i >= 0; i--) {
if (button_irqs.irq < 0) {
continue;
}
disable_irq(button_irqs.irq);
free_irq(button_irqs.irq, (void *)&button_irqs);
}
return -EBUSY;
}
ev_press = 1;
return 0;
}
最為一個菜鳥現在不知如何是好啊,請各位大蝦指點指點