当前位置:  技术问答>linux和unix

请大家帮帮忙:关于申请中断号失败问题?

    来源: 互联网  发布时间:2016-05-09

    本文导语:  平台:AT91SAM9260. 按键中断驱动.无论如何,申请中断号,都返回-22. int __init keyirq_init(void)  {      int rc;      set_irq_type( AT91SAM9260_ID_PIOB, IRQT_FALLING);      rc = request_irq( AT91SAM9260_ID_PIOB, key1_irq_fun, SA_INTERRUPT...

平台:AT91SAM9260. 按键中断驱动.无论如何,申请中断号,都返回-22.
int __init keyirq_init(void)
 {
     int rc;
     set_irq_type( AT91SAM9260_ID_PIOB, IRQT_FALLING);
     rc = request_irq( AT91SAM9260_ID_PIOB, key1_irq_fun, SA_INTERRUPT, "key2345irq", NULL);
    if(rc){
        printk("keyirq 1 irq not registered, Error:%dn", rc);
        return -1;
     }
......
}
按键使用的是PB5管脚,根据手册和linux-2.6.19内核代码,AT91SAM9260_ID_PIOB为内核中声明的中断号。
不知道为何总是申请失败?
请各位帮帮忙吧,已经好几天时间了!




|
-22代表 -EINVAL.

到kernel/irq/manage.c里找request_irq的源代码:
其中关于-EINVAL的代码
        /*
         * Sanity-check: shared interrupts must pass in a real dev-ID,
         * otherwise we'll have trouble later trying to figure out
         * which interrupt is which (messes up the interrupt freeing
         * logic etc).
         */
        if ((irqflags & IRQF_SHARED) && !dev_id)
                return -EINVAL;
        if (irq >= NR_IRQS)
                return -EINVAL;
        if (irq_desc[irq].status & IRQ_NOREQUEST)
                return -EINVAL;
        if (!handler)
                return -EINVAL;

目前,根据你的代码,可以排除第一个可能性,其他的没办法知道,你自己可以对照代码查查。
反正代码都是公开的嘛




|
可能该中断已经被占用了吧

按道理内核移植时有段程序就是初始化中断的
默认情况下应该初始化没问题的,你可以把AT91SAM9260_ID_PIOB改成其他的中断号试试就知道了
若都有问题,说明移植时候的初始化有问题
但感觉不可能,若网络是正常的就说明上述猜测错误,因为网卡也需要中断

其实最直接的方式是查看内核中的中断使用状态
cat /proc/interrupts
看看AT91SAM9260_ID_PIOB是不是已经被其他模块占用了

Linux的proc文件系统做的非常好,可以动态查看一些信息
可用于系统的诊断

我们自己的驱动程序也应该借鉴这种思想
这样可以提高我们驱动软件的可测性,便于分析问题

|
不知道有没有试过SA_SHIRQ

    
 
 

您可能感兴趣的文章:

  • 帮帮忙!SCO OpenServer 5.0.5 的root用户口令丢了,怎么找回来啊,帮帮忙!!!!!!
  • 没人帮忙吗?我想用JAVA编一个像WINDOW中的画图软件,现在出现了如下问题,请各位老哥老姐帮帮忙 iis7站长之家
  • 各位大哥帮帮忙。谁知道怎么加可用分?
  • 该死的中文显示问题,帮帮忙
  • 如何获得string中某特定第二个字符,请帮帮忙!
  • 关于聊天室的问题,请大家帮帮忙,一定给分
  • 帮帮忙!!!!我的RH8装不进去!!!
  • 急!大家帮帮忙!有哪些视频点播系统能在在LINUX下安装以及怎样安装!
  • 急!大家帮帮忙!有什么视频点播系统能在LINUX下安装,以及怎样安装!!
  • 大家帮帮忙!!急!!怎样安装.bin的文件!!!
  • 帮帮忙!关于红帽子9的!(在线等)
  • 新手上路,大家帮帮忙
  • QTextBrowser的拖影问题,各位大虾,帮帮忙
  • 各位高手帮帮忙,急啊!
  • 大家帮帮忙!急啊
  • U盘的LINUX系统问题,大虾们帮帮忙。
  • 高手帮帮忙,SHELL脚本编程~~~~~~~~~~~~~~~~~~
  • 跪求啊,我的邮箱密码忘记了,那位大侠帮帮忙啊
  • 大家帮帮忙----linux下的编程到底要学哪些东西?
  • 限制ssh登录,放开sftp登录,怎么办?跪求高手帮帮忙!
  • 兄弟们,请帮帮忙吧,关于LINUX 的调度和时钟中断处理代码的分析!在线等待啊。。。:(
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在servlet中有一个关于单引号输出的问题,请大家帮忙,帮忙,帮帮忙!!
  • 没人帮忙吗?我想用JAVA编一个像WINDOW中的画图软件,现在出现了如下问题,请各位老哥老姐帮帮忙
  • 为什么在笔记本电脑上无法运行reahat?各位大哥帮帮忙
  • 郁闷死了555555555555,大哥哥,大姐姐们帮帮忙哦
  • 救命,系统无法连通网络,大家帮帮忙
  • 在线等待,java字符集的问题.急,请大家帮帮忙?
  • 各位帮帮忙啊,多谢了
  • 备份问题请大家帮帮忙?
  • 谁可以帮帮忙
  • 菜鸟问题,着急呀,大家帮帮忙呀!!
  • 帮帮忙!
  • 请大家帮帮忙推荐几本书
  • 我想装redhat7.2,帮帮忙!
  • 大家好!我最近一个浏览器的原代码不知道怎么编译运行。。请帮帮忙?
  • 一定高分给去!高手请来帮帮忙。
  • 高手们快来帮帮忙啊,,好郁闷!!!LINUX 9.0装不上的问题!
  • 一个linux shell编程求素数问题 高手帮帮忙啊
  • 我就想要下载个简单的UNIX操作系统,做学习用.各位朋友,帮帮忙吗..
  • 三星的p28装red hat9。0,网卡认不出,有哪位知道的帮帮忙
  • 大虾们,帮帮忙!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3