阅读:1091回复:1
高手请进,小弟碰到棘手问题了
向大侠们请教教一个问题:我手上一块板,cpu是intel的ixp425,在上面开发驱动,需要用到gpio中断,中断类型是边沿中断,然后用
request_irq()注册了中断,中断服务程序里面中断标志位也清除了。但是insmod过后,系统打印一条信息,然后中断处于混乱状态,中断次数猛增。 打印信息是:IRQ LOCK:IRQ28 is locking the system,disabled 我的程序源码是: IXP425_GPIT2R_REG->GPIO11_BIT = 0x100; //设置中断类型 if(SLIC_IRQ > 0) { intresult = request_irq(SLIC_IRQ,slic_hook_interrupt,SA_INTERRUPT,"slic",NULL); } if(intresult) { printk("SLIC:can't get assigned irq %i\n",SLIC_IRQ); return intresult; } if(intresult == -EBUSY) { printk("IRQ %i is busying\n",SLIC_IRQ); return intresult; } //注册中断 中断号是28 //中断服务程序: static void slic_hook_interrupt(int irq,void *dev_id,struct pt_regs *regs) { IXP425_GPIO_ISR_REG->GPIO_ISR_BIT11 = 1; IXP425_GPOUTR_REG->GPIO_BIT6 = ~(IXP425_GPOUTR_REG->GPIO_BIT6); slic_buf[15]++; slic_buf[14] = 10; } |
|
沙发#
发布于:2005-01-29 17:04
屏蔽中断了么
|
|