- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Input输入子系统分析
HYPERLINK /uidid-3758334.html input子系统分析
Jason
一、概述
在linux下,按键、触摸屏、鼠标等都可以利用input接口函数来实现设备驱动。
1,linux输入子系统主要分三层: 驱动,输入CORE, 事件处理层。
驱动根据CORE提供的接口,向上报告发生的按键动作。然后CORE根据驱动的类型,分派这个报告给对应的事件处理层进行处事。
事件处理层把数据变化反应到设备模型的文件中(事件缓冲区)。并通知在这些设备模型文件上等待的进程。
2,输入子系统在KERNEL初始化时被初始化。会创建所有类型输入输出设备的逻辑设备(及sysfs结点)。当硬件注册时,就会调用所有类型的input handler的connect函数,根据硬件注册的结构来判断是否与自己相关,然后再创建一个具体的设备结点。
3,驱动只负责的把输入设备注册到输入子系统中,然后输入子系统来创建对应的具体设备结点。而事件处理层,在初始化时,需要注册所一类设备的输入事件处理函数及相关接口
4,一类input handler可以和多个硬件设备相关联,创建多个设备节点。而一个设备也可能与多个input handler相关联,创建多个设备节点。
二、输入设备结构体
1.input_dev 这是input设备基本的设备结构,每个input驱动程序中都必须分配初始化这样一个结构,成员比较多?
代码路径 kernel/include/linux/input.h
struct?input_dev?{??
????const?char?*name;???????//设备名??
????const?char?*phys;???????//设备系统层的物理路径??
????const?char?*uniq;???????//??
????struct?input_id?id;?//输入设备id?总线类型;厂商编号,产品id,产品版本??
??
????unsigned?long?evbit[BITS_TO_LONGS(EV_CNT)];?//事件类型标志位??
????unsigned?long?keybit[BITS_TO_LONGS(KEY_CNT)];???//键盘事件标志位??
????unsigned?long?relbit[BITS_TO_LONGS(REL_CNT)];???//相对位移事件标志位??
????unsigned?long?absbit[BITS_TO_LONGS(ABS_CNT)];???//绝对位移事件标志位??
????unsigned?long?mscbit[BITS_TO_LONGS(MSC_CNT)];???//杂项事件标志位??
????unsigned?long?ledbit[BITS_TO_LONGS(LED_CNT)];???//led指示灯标志位??
????unsigned?long?sndbit[BITS_TO_LONGS(SND_CNT)];???//声音事件??
????unsigned?long?ffbit[BITS_TO_LONGS(FF_CNT)];?//强制反馈事件??
????unsigned?long?swbit[BITS_TO_LONGS(SW_CNT)];?//开关事件标志位??
??
????unsigned?int?hint_events_per_packet;??
????unsigned?int?keycodemax;????????//键盘码表大小??
????unsigned?int?keycodesize;???????//键盘码大小??
????void?*keycode;??????????//键盘码表指针??
??
????int?(*setkeycode)(struct?input_dev?*dev,unsigned?int?scancode,?unsigned?int?keycode);???//设置键盘码??
????int?(*getkeycode)(struct?input_dev?*dev,unsigned?int?scancode,?unsigned?int?*keycode);??//获取键盘码??
????int?(*setkeycode_new)(struct?input_dev?*dev,const?struct?input_keymap_entry?*ke,unsigned?int?*old_keycode);???
????int?(*getkeycode_new)(struct?input_dev?*dev,struct?input_keymap_entry?*ke);??
??
????struct?ff
您可能关注的文档
- flash初始化子程序.doc
- flac大作业.doc
- FOC控制基于电阻的电流采样方案比较.docx
- FM7538C(原边恒压恒流5V2A(内置MOS)充电器.doc
- FPGA学习等精度测频.doc
- FORM打不开问题集.doc
- FMEA分析作业指导书.doc
- FPC可靠度测试规范.doc
- Folin酚测蛋白质含量实验报告.doc
- FPGA_报告书.doc
- 中国国家标准 GB/T 45390-2025动力锂电池生产设备通信接口要求.pdf
- 中国国家标准 GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- 《GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型》.pdf
- GB/T 10184-2025电站锅炉性能试验规程.pdf
- 海尔智家股份有限公司海外监管公告 - 海尔智家股份有限公司2024年度环境、社会及管治报告.pdf
- 上海复旦张江生物医药股份有限公司2024 环境、社会及管治报告.pdf
- 中国邮政储蓄银行股份有限公司中国邮政储蓄银行2024年可持续发展报告.pdf
- 豫园股份:2024年环境、社会及管治(ESG)报告.pdf
- 南京熊猫电子股份有限公司海外监管公告 - 2024年度环境、社会及治理(ESG)报告.pdf
最近下载
- 骨科无菌术 手术区域的准备.pptx
- 《海岸带生态系统现状调查与评估技术导则 第7部分:牡蛎礁》(报批稿).pdf VIP
- GB4943-2001 信息技术设备 安全 第1部分:通用要求.pdf
- 基于舞弊风险因子理论的柏堡龙财务舞弊案例研究.pdf
- 《海岸带生态系统现状调查与评估技术导则 第5部分:珊瑚礁》(报批稿).pdf VIP
- 建筑施工安全风险辨识和分级管控指南、台账、企业安全风险分级管控清单.docx VIP
- 2025年施工员考试题库及完整答案【名师系列】.docx VIP
- 2025年施工员考试题库附完整答案【夺冠】.docx VIP
- 2025年白蚁防治员岗位职业技能资格知识考试题库(附含答案).docx
- 国际护士节护理操作技能竞赛理论题库.docx
文档评论(0)