嵌入式Linux之input输入子系统驱动

 从整体上来说,input输入子系统分为3层:上层(输入事件处理层)、中层(输入核心层)、下层(输入设备驱动层),依次为上图中从右往左。

输入设备其实就是通过某些接口总线向开发板输入信息,比如鼠标,其实就是通过usb接口向开发板传递输入信息,输入设备驱动层其实就是配置usb这种接口总线使它能够正常接收输入。而输入事件处理层就是将我们收到的数据进行处理成一定的格式,举一个触摸屏的例子,

通过(hexdump /dev/input/event2(event2是在我的开发板上,其它的根据实际情况定))命令,当我点击触摸屏然后松开,发现控制台打印了以下消息(十六进制):

0247 0000 00d3 000e 0003 0000 02c4 0000

0247 0000 00db 000e 0003 0001 0181 0000

0247 0000 00de 000e 0001 014a 0001 0000

0247 0000 00e0 000e 0003 0018 0001 0000

0247 0000 00e2 000e 0000 0000 0000 0000

0248 0000 c838 0002 0001 014a 0000 0000

0248 0000 c876 0002 0003 0018 0000 0000

0248 0000 c89f 0002 0000 0000 0000 0000

可以看到,每一个input事件都有一个时间,包含32位的秒,32位的微妙,此外还有16位的type(事件类型),16位的code(事件键值),32位的value(值),这就是输入事件处理层处理之后按照这样的格式输出。

还以触摸屏(i2c接口)为例,开发板收到i2c总线上的信息后,为什么会把信息输出到/dev/input/event2里面去,这就是输入核心层所做的事,输入核心层其实是负责协调上层和下层,使得上层和下层之间能够完成数据传递。当下层发生输入事件的时候,整个系统就被激活了,事件就会通过核心层传递到上层对应的一个/多个handler中,最终会传递到应用空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丑爱表现

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值