首页 > 学院 > 开发设计 > 正文

Linux输入子系统

2019-11-08 01:42:22
字体:
来源:转载
供稿:网友

前面章节讲解了按键设备驱动,实际上,在linux系统中,为了实现这类驱动程序,一种更值得推荐的方法是利用input子系统。Linux系统提供了input子系统,按键、触摸屏、鼠标等输入型设备都可以用input接口函数来实现设备驱动。

体系结构:输入子系统由驱动层,输入子系统核心层(InputCore)和事件处理层(EventHandler)三部分组成。一个输入事件,如鼠标移动,键盘按键按下,通过Driver->InputCore-Eventhandler->userspace的顺序到达用户空间的应用程序。

驱动层:将底层的硬件输入转化为统一事件形式,向输入核心(InputCore)汇报。

输入核心层:为驱动层提供输入设备注册与操作接口,如:input_register_device;通知事件处理层对事件进行处理;在/PROC下产生相应的设备信息。

事件处理层:主要作用是和用户空间进行交互,我们知道Linux在用户空间将所有设备当成文件来处理,在一般的驱动程序中都有提供fops接口,以及在/dev下生成相应的设备文件nod,而在输入子系统中,这些工作都是由事件处理层来完成的。

设备描述:在Linux内核中,input设备用input_dev结构体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键、触摸屏、键盘、鼠标等输入事件(event,通过input_event结构体来描述),不需要再关心文件操作接口,因为input子系统已经完成了文件操作接口,驱动报告的事件经过InputCore和Eventhandler最终到达用户空间。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表