免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2902 | 回复: 0
打印 上一主题 下一主题

9260按键中断申请失败 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-16 11:39 |只看该作者 |倒序浏览
我在申请注册按键中断的时候(中断方式为下降沿触发),只成功申请第一个,后面的没有成功,下面是一些信息的截图,请各位帮忙看下

// 按键设备驱动的中断申请函数
// 申请系统中断,中断方式为下降沿触发
static int request_irqs(void)
{
        struct key_info *k;
        int i;
        int ret;
        for(i = 0; i < sizeof(key_info_tab)/sizeof(key_info_tab[1]); i++)
          //  for(i = 0; i < 1; i++)
        {
                k = key_info_tab + i;
               
        //设置6个IO口为中断下降沿触发方式
                set_irq_type(key_info_tab[i].irq_no, key_info_tab[i].irq_type);

        //申请中断(类型为快速中断,中断服务时屏蔽所有外部中断?)将按键序列号作为参数传入中断服务程序        
                      ret = request_irq(key_info_tab[i].irq_no,key_irq_handler,0,key_info_tab[i].name,(void*)key_info_tab[i].key_no);
                if(ret)
                {
                        printk(KERN_NOTICE "buttons:ret is %d\r\n",ret);
                        return -1;
                }
        }
        return 0;
}




------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:274 enable_irq+0x48/0x68()
Unbalanced enable for IRQ 42
Modules linked in: at91_key
[<c002a0fc>] (unwind_backtrace+0x0/0xec) from [<c003b2e4>] (warn_slowpath_common+0x48/0x60)
[<c003b2e4>] (warn_slowpath_common+0x48/0x60) from [<c003b334>] (warn_slowpath_fmt+0x24/0x30)
[<c003b334>] (warn_slowpath_fmt+0x24/0x30) from [<c0060850>] (enable_irq+0x48/0x6
[<c0060850>] (enable_irq+0x48/0x6 from [<c0044afc>] (run_timer_softirq+0x154/0x1e
[<c0044afc>] (run_timer_softirq+0x154/0x1e from [<c004007c>] (__do_softirq+0x78/0x104)
[<c004007c>] (__do_softirq+0x78/0x104) from [<c002407c>] (asm_do_IRQ+0x7c/0x9
[<c002407c>] (asm_do_IRQ+0x7c/0x9 from [<c0024a54>] (__irq_svc+0x34/0x60)
Exception stack(0xc02e5f80 to 0xc02e5fc
5f80: 00000000 0005317f 0005217f 60000013 c02e4000 c03089dc c0021014 c02e7b08
5fa0: 2001f500 41069265 2001f4cc 00000000 600000d3 c02e5fc8 c0025e7c c0025e88
5fc0: 60000013 ffffffff
[<c0024a54>] (__irq_svc+0x34/0x60) from [<c0025e88>] (default_idle+0x2c/0x30)
[<c0025e88>] (default_idle+0x2c/0x30) from [<c0026360>] (cpu_idle+0x58/0x9c)
[<c0026360>] (cpu_idle+0x58/0x9c) from [<c0008ad0>] (start_kernel+0x260/0x2b
[<c0008ad0>] (start_kernel+0x260/0x2b from [<20008034>] (0x20008034)
---[ end trace ac22e11f276d5f8e ]---


cat /proc/interrupts
           CPU0
  1:      14369         AIC  at91_tick, rtc0, ttyS0
10:          0         AIC  at91_udc
20:          0         AIC  ohci_hcd:usb1
21:       2087         AIC  eth0
40:          0        GPIO  KEY_ENTER
42:          0        GPIO  KEY_UP
43:          0        GPIO  KEY_LEFT
54:          0        GPIO  KEY_RIGHT
57:          1        GPIO  KEY_DOWN
60:          0        GPIO  KEY_ESC
101:          0        GPIO  at91_udc
Err:          0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP