1, 理论知识
按键按下(产生了中断)→跳转到异常向量入口,执行中断函数
中断函数要做什么:
1.保护现场
2.执行中断处理函数
3.恢复现场
我们需要做什么?
学会使用中断注册函数,了解注册中断相关的函数和结构体
中断注册函数:request_irq的5个参数
request_irq(unsignedint irq, irq_handler_t handler, unsigned long flags,
constchar *name, void *dev)
参数1:irq,中断号。(和平台架构相关,结合datasheet以及平台文件)
参数2:中断处理函数
参数3:中断标记。上升/下降沿,高/低电平……
参数4:中断名字。cat /proc/interrupts
参数5:使用设备的设备结构体或者NULL。free_irq
free_irq(irq,*dev_id)
request_irq的调用
4412上外部中断号如何对应:(IRQ_EINT(x)和datasheet对应)
HOME和BACK
EXYNOS4_GPX1[1]和EXYNOS4_GPX1[2]
→KP_COL[1]和KP_COL[2]
→XEINT_9和XEINT_10
IRQ_EINT(9)和IRQ_EINT(10)
准备工作:
在平台文件中注册设备:keyirq