S5PV210 Linux内核按键中断实验

我用的OK210的板子在做按键中断驱动的硬件实现时遇到了一些问题,编写好程序之后,按下按键一直无法进入中断函数。通过调试发现,注册中断(request_irq)就没有成功,注册中断返回值为负数。

                                S5PV210 Linux内核按键中断实验_第1张图片

这是中断注册返回值为负数,注册失败。所以无法实现按键中断。通过询问与查阅,原来问题是内核已经将按键中断注册了。以下是解决办法。

进入内核目录:用make menuconfig ARCH=arm 进入配置页面

S5PV210 Linux内核按键中断实验_第2张图片

选择Device Drivers->,进入

S5PV210 Linux内核按键中断实验_第3张图片

选择Input device.....->,进入

        S5PV210 Linux内核按键中断实验_第4张图片

将KeyBoard这项取掉,然后从新编译内核。这样就把内核注册的按键中断取消了。这里有三种中断注册的函数,它们的中断号不同,如下图:

S5PV210 Linux内核按键中断实验_第5张图片

分别返回他们的返回值:

S5PV210 Linux内核按键中断实验_第6张图片

如图所示,只有result1的返回值是成功的,其他的中断号都没有成功。当按键中断时,进入中断程序,表明实验成功了。

S5PV210 Linux内核按键中断实验_第7张图片



你可能感兴趣的:(Linux嵌入式)