linux驱动—input输入子系统
什么是输入设备?如键盘,鼠标,触摸屏,游戏手柄。
编写输入设备驱动:
假设我们写一个键盘驱动,创建文件,硬件初始化,实现文件操作集函数,中断等等,非常
麻烦。
假设我们写一个鼠标驱动,创建文件,硬件初始化,实现文件操作集函数,中等等,非常
麻烦。
这些输入设备驱动当中是有共同点的,共同点就是获取数据,上报给用户。所以nux 就将
通用的代码编写好,将差异化的代码留给驱动攻城狮。从而出现了input子系统
所以:input 系统是 Linux 专门为输入类设备编写的一个子系统(框架)。从而规范驱动开发,降低开发难度。并且驱动的通用性兼容性会更好。
为什么有输入子系统就可以降低开发难度。并且驱动的通用性兼容性会更好?
举例:
比如按键驱动,在不使用input 子系统前提下:
A同学:使用1代表按下,使用0代表松开
B同学:使用2代表按下,使用3代表松开
所以不同的人相同的动作用不同的代码去表示。而应用程序是没有办法把所有的驱动全部适
配,这样兼容性,移植性就不好。
使用input 子系统前提下:
再比如现在同学们使用的键盘有不同的厂家,但是这些厂家的键盘连接到电脑上都可以正常
使用,因为这些厂家的驱动都是按照input 这个子系统框架来编写的。
B:
所有的厂家都使用1代表按下,使用0代表松开。并且使用input 子系统可以不用自己实现
文件操作集函数,也就是不用我们去实现读写等函数,所有可以降低开发难度。
再次总结input 子系统的作用
1.兼容所有的输入设备
2.统一的驱动编程方式
3.统一的应用操作接口:/dey/input
所以应用层对input子系统操作,就可以控制鼠标、键盘、摇杆等这些设备了。