QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1077|回复: 0

我的程序为什么申请不到中断呢?

[复制链接]
发表于 2006-3-29 11:45:35 | 显示全部楼层 |阅读模式
近日,我在做一个基于s3c2410下的linux驱动,在驱动中的request_irq函数如下:

static void hpi_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
}


static int hpi_open(struct inode *inode, struct file *file)
/*file_operation的“打开”指针函数实现,可省去,如果为NULL,设备打开操作永远成功*/
{        
   int ret;
      
       ret=request_irq(HPI_IRQ,hpi_interrupt,SA_INTERRUPT,DEVICE_NAME,NULL);
   
    if(ret){
     printk(DEVICE_NAME " can't get assigned irq\n");
     printk("HPI_IRQ is %d\n",HPI_IRQ);
     printk("ret is %d\n",ret);
        goto bad_out;
    }

        //init the HPIC
         HPIC_L = 0x0001;//HWOB = 1,LSB.ie.the low half come first
         HPIC_H = 0x0001;//The same of low half;

         //init the HPIA
         HPIA_L = 0x0000;
         HPIA_H = 0x0180;
         
          return 0;

     bad_out:
         return ret;
}
其中 HPI_IRQ定义为EINT5,DEVICE_NAME是“hpi”,驱动编译无错,然后用insmod加载,设备注册成功,可是在系统调用open时,每次都显示:
hpi can't get assigned irq
HPI_IRQ is 33
ret is -22
在/proc/interrupts中33号中断确实空闲啊。换成别的空闲中断也是申请不到,不知为什么。请高手指点一下,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 12:30 , Processed in 0.097110 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表