linux中input子系统如何配置多个按键
1、1.豹肉钕舞设备驱动入口函数 在设备驱动入口函数中我们需要做的事:(1)分配一个input_dev 结构体 硷增浑叶 (2)设置这个input_dev 结构体 (3)调用input_register_device注册这个input_dev (4)完成硬件相关操作:如注册中断处理函数,添加定时器等

2、2.在初始化iinput_dev结构体过程 主要对其中的如下数组做了初始化,从而来确定该设备支持哪些事件,支持哪些操作。

4、4.事件类蕞瞀洒疸型的设置主要对evbit[]数组中的相应位做设置:set_bit(EV_KEY, button_dev->evbit); 然后再确定设备支持该类事件下的哪些操作 硷增浑叶 例如:在相对坐标事件下可以支持如下操作

6、6.注册输入设备input_register_device() 这个函数在上一篇博客中已经做了简要分析,这里在提一下input_register_device()中做了哪些事硷增浑叶 (1)设置同步事件、清除KEY_RESERVED、清除bitmasks中没有提到的位 (2) 初始化定时器,确定定时器的处理函数。这里定时器与重复上报事件有关,注意在事件类型中有EV_REP事件,设置这个事件在ev_bit中的相应位,就可以重复上报事件。 (3) 设置getkeycode 和 setkeycode 函数 (4) device_add,input_dev包含的device结构注册到Linux设备模型中,在sysfs文件系统中可以看到增加了设备input1

8、8.input_event 上报事件函数



11、11.实验效果 3.1 执行hexdump /dev/input/event0 依次按下 l s enter 对应的按键:l 对应0x26 s 对应0x1f enter对应0x1c
