dsp_666666
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-01-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1191回复:0

uClinux驱动中断问题,高手请进

楼主#
更多 发布于:2005-01-11 19:35
向大侠们请教教一个问题:我手上一块板,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 %in",SLIC_IRQ);
return intresult;
}
if(intresult == -EBUSY)
{
printk("IRQ %i is busyingn",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;
}


 
游客

返回顶部