1.IRQ_EINT(x) 中断号
是在kernel/arch/arm/mach-s3c64xx/include/mach/irqs.h 当中定义的。
2.IRQF_TRIGGER_FALLING 下降沿触发
是在kernel/include/linux/interrupt.h 当中定义的。
3.DECLARE_WAIT_QUEUE_HEAD(name) 生成一个等待队列头,name就是那个头
是在kernel/include/linux/wait.h 当中定义的
4.void wake_up_interruptible(&name); 唤醒休眠
5.wait_event_interruptible(name,flag); 休眠
6.request_irq(key_irqs[num].irq,keys_interrupt,key_irqs[num].flags,key_irqs[num].name,(void *)&key_irqs[num]); //申请中断
key_irqs[num].irq 中断号
keys_interrupt 中断处理函数
key_irqs[num].flags 中断触发方式
key_irqs[num].name 按键的名字
(void*)&key_irqs[num] 中断结构体,用来给中断处理函数提供参数
7.free_irq(key_irqs[num].irq,(void *)&key_irqs[num]); //释放中断