|
问个arm linux驱动开发申请外部中断的问题
[复制链接]
arm9 2440,内核用的是2.6.22
我在驱动开发中需要用到外部中断0,我是这样来申请中断的:
s3c2410_gpio_cfgpin(S3C2410_GPF0,S3C2410_GPF0_EINT0);
s3c2410_gpio_pullup(S3C2410_GPF0,0);
set_irq_type(IRQ_EINT0,IRQT_LOW); //低电平触发
request_irq(IRQ_EINT0,my_ISR,SA_INTERRUPT,DEVICE_NAME,0);
其中request_irq返回值为0,应该能说明中断申请成功了吧
调试中发现,无论我在哪用disable_irq禁止这个中断,在申请成功之后总会自动进入中断服务程序一次,我把中断触发方式改成其他的方式也是如此。在申请前先对INTMSK寄存器(已经ioremap了)相应位写1禁止中断也会自动进入ISR一次。
为什么会是这样?
还有就是,我应该怎么来禁止某个中断,是用disable_irq还是置位INTMSK?
高手帮忙看看,谢谢!
|
|