nomaze 发表于 2012-6-27 14:38:35

ok6410光盘内的内核源码是否已经对6个按键进行中断注册(已解决)

本帖最后由 nomaze 于 2012-6-28 01:36 编辑

ok6410光盘内的内核源码linux-3.0.1是否已经对6个按键进行中断注册了呢?如果是的话,我该如何再去注册我的中断服务程序呢?我在用这份源码编译出来的内核来做按键实验的时候,request_irq无论采用IRQF_SHARED还是IRQF_INTERRUPT模式都是返回-EBUSY错误号。
    另外,做按键实验的时候,还需要对与这几个键相连的寄存器GPNCON进行设置吗?谢谢

结贴

nomaze 发表于 2012-6-27 15:20:18

有没有人回答呢?

nomaze 发表于 2012-6-28 01:36:13

经过不懈的努力,总算是被我找出解决方法了,最后还是自己解决,结贴
这里无法注册中断的原因,当然是中断线已被占用,而去查看free_irq的代码(在kernel/irq/manage.c中),可以发现,出现这个Trying to free already-free IRQ 101 告警的原因是存在该中断号对应的中断描述符desc ,而相印的中断服务程序却不存在。说明有驱动程序占用了该中断号。 因而,我们要去掉这个驱动程序,方法:make menuconfig->Device Drivers->input device support->Key Boards->GPIO Buttons 去掉前面的*,即不选该项即可。
重新编译内核,ok

wujiaheng 发表于 2012-7-1 20:51:50

页: [1]
查看完整版本: ok6410光盘内的内核源码是否已经对6个按键进行中断注册(已解决)