Linux Input Device编程:基本事件类型与EV_KEY, EV_REL, EV_ABS详解
需积分: 50 124 浏览量
更新于2024-08-06
收藏 925KB PDF 举报
本资源主要介绍了Linux内核中关于输入设备驱动编程的基本概念,特别是根据国际民航组织(ICA0)附件10第一卷的规定。章节详细讨论了基本事件类型,包括EV_KEY、EV_REL和EV_ABS,这些都是Linux内核中处理设备输入的核心组件。
EV_KEY用于处理按键和按钮事件,通过input_report_key函数上报,其中code参数定义了键的类型,value则表示键的状态(按下或释放)。当值改变时,INPUT系统才会发送事件。EV_REL代表相对值事件,如鼠标移动,只有在值与上次报告值不同时才会触发事件。EV_ABS则用于绝对值设备,如游戏杆,需要预先在input_dev结构中为每个绝对轴设置参数,如最小值、最大值、噪声范围和中心点大小。
1.4节提到的BITS_TO_LONGS、BIT_WORD和BIT_MASK宏是bitops.h中的工具,用于简化位操作,如计算位在long类型数组中的长度、位的位置和掩码。
id*和name字段在输入设备驱动中扮演重要角色,name提供了用户友好的设备名称,而id包含设备的总线标识(如PCI或USB)、PID(产品ID)和VID(供应商ID),这些信息应在设备驱动注册前设置。
Input驱动编程部分涵盖了设备驱动的设置,如如何配置设备的属性和如何通过evdev接口将id和name传递给上层应用程序。此外,还提到了输入设备的命名空间管理和资源控制,但具体细节未在此摘要中详述。
翻译工作方面,项目的目标是重启和维护高质量的中文内核文档翻译,将翻译工作转移到GitHub上,使用GitBook展示翻译成果,并保持Markdown格式的一致性。翻译工作将以最新longterm版本3.18内核代码为基准,遵循原有的文档结构,并鼓励社区参与翻译。
这个资源是Linux内核输入设备驱动开发者的实用指南,涵盖了从基本事件类型到驱动编程实践的各个方面,对深入理解Linux内核输入处理机制具有重要意义。
2022-06-22 上传
2019-07-15 上传
2020-12-02 上传
2019-09-26 上传
2021-08-08 上传
张诚01
- 粉丝: 32
- 资源: 3918
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫