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子系统操作,就可以控制鼠标、键盘、摇杆等这些设备了。

相关推荐
国医中兴8 小时前
Flutter 三方库 pickled_cucumber 的鸿蒙化适配指南 - 玩转 BDD 行为驱动开发、Gherkin 自动化测试实战、鸿蒙级质量守护神
驱动开发·flutter·harmonyos
tdhao8888 小时前
部署 VS2022 驱动开发环境-解决无法编译驱动的问题
驱动开发·visual studio
篮子里的玫瑰16 小时前
智能天气时钟项目(二):AHT20温湿度传感器驱动开发详解
驱动开发
欲盖弥彰131419 小时前
Linux设备驱动 -- TMP75AIDR驱动移植
linux·驱动开发·驱动·驱动移植·嵌入式linux驱动·tmp75aidr
ShawnLiaoking2 天前
华硕ROG LoadLibrary failed 126
驱动开发·显示器
charlie1145141912 天前
2026年正点原子开发板移植方案——从0开始的Rootfs之路(5)WSL + NFS 网络启动踩坑记:从挂载失败到成功启动的完整历程
linux·网络·驱动开发·学习·嵌入式·嵌入式linux
爱写代码的汤二狗3 天前
第4章 载体选择:网站、小程序还是App?
人工智能·驱动开发·创业创新
charlie1145141913 天前
2026年正点原子开发板移植方案——从0开始的Rootfs之路(4)Rootfs 目录结构创建:Linux 文件系统的“骨架“
linux·驱动开发·学习·嵌入式开发·嵌入式linux
篮子里的玫瑰3 天前
智能天气时钟项目(一):ESP32 AT指令集详解与STM32驱动开发
驱动开发·stm32·嵌入式硬件
俊俊谢3 天前
LabVIEW如何排查和修复dll缺失问题
驱动开发·.net·labview·dll