- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 概述
1.1 kpad控制器介绍
Kpad控制器:
可以控制最多8X8的按键;
同时最多检测4个按键同时按下(多键检测功能)
“long key”模式,在一次按键下,发送多次中断。
按键不按会休眠,按键按下会唤醒CPU。
可编程“de-bounce”(消抖)、IO极性和扫描频率。
1.2 Kpad配置:
pinmap.c
pinmap中对kpad的带复用功能的引脚都配置成了复用功能。
kpad_cfg.c
kpad_cfg.c中进行KEY的配置。
sprd-keypad.kl
要根据以上两个文件中的定义修改键功能的宏定义。
第二章 Keypad和输入子系统
2.1 Android下调试input subsystem工具
getevent/sendevent
这两个命令都是adb下使用的命令
xxxx-$ getevent
...
/dev/input/event0: 0001 0074…
xxxx-$
含义:
Name 字符串与对应的驱动文件注册的 input 设备名是匹配的
0001 是 type, 0074 是 code, 而是 value
Event 的 type 以及每个 type 对应的 code 的含义可以通过查找 kernel\include\linux\input.h 获得
命令格式 2:adb shell sendevent [device] [type] [code] [value]
发送时间,格式和上面的一样,需要注意的是在 get 中 code 显示的是十六进制,而 send 中需要用十进制,例如:
# sendevent /dev/input/event0 1 116 1
这个命令就是发送数字 4 的 keydown 消息
2.2 linux输入子系统
Input输入子系统框架
input_dev:表示一个input设备;
input_handler:表示一个input设备的interface;
input_handle:input_dev和input_handler的linker。
事件驱动层和核心层都是通用的,我们需要实现的是设备驱动层。输入设备驱动会把硬件产生的事件信息用统一的格式(struct input_event)上报给核心层,然后核心层进行分类后,再上报给相应的事件处理驱动程序,最后通过事件层传递到用户空间,应用程序可以通过设备节点来获取事件信息。比如底层报上来的是一个按键事件,核心层会报给evdev来处理;如果报的是一个鼠标事件,核心层会报给mousedev来处理。
2.2.0 kl文件和kcm文件的作用
当有按键响应时,内核input_report_key()传给 ANDROID的是scancode, ANDROID将scancode经 配置表(如qwerty.kl)找到keycode标识符,然后由内部表KEYCODES列表找到keycode的数字值 ,再由keycode的数字值经字符 配置表(如qwerty.kcm)找到对应的字符值。
2.2.1 Linux输入子系统概述 InputCore EventHandler InputDriver
输入子系统主要由三个部分组成,InputCore、驱动和事件管理者
参考文档: input.h
Documents/input/input.txt
Documents/input/input-programming.txt
Using the Input Subsystem, Part II
The Linux USB Input Subsystem, Part I
linux input subsystem(一)
linux input subsystem(一)
输入设备的工作机制:在按键、触摸等活动时产生一个中断、CPU通过总线读取数据、驱动将数据放到缓冲区进行管理、用户通过read等函数读取相应数据。
在linux中,输入子系统由:输入子系统驱动层、输入子系统核心层(Input Core)、输入子系统事件处理层三部分组成。
InputDriver:input.txt
Driver的作用就是将多样化的底层输入设备接口,转换成标准的事件,之后发送到InputCore。
在linux中,Input设备使用input_dev结构体描述,定义在input.h中。设备驱动如此实现:
在probe函数中初始化input设备,设置inpu
您可能关注的文档
最近下载
- 15《小岛》(说课课件)部编版语文五年级上册.pptx VIP
- 含电容电路含电容电路.doc VIP
- TED中英双语演讲稿Why we love, why we cheat.pdf VIP
- 债券借贷视角看利率.pptx VIP
- 画法几何及机械制图(第6版)课后习题答案解析.pdf
- GB/T 19024-2025质量管理体系 面向质量结果的组织管理 实现财务和经济效益的指南.pdf
- 党课讲稿:从网络大国走向网络强国,让互联网点亮我们的生活.doc VIP
- ARC低压无功补偿装置安装使用说明书(安瑞科液晶显示).pdf VIP
- 班主任如何培养班干部(课件PPT).pptx VIP
- 深圳市历年中考真题及答案2025.doc VIP
原创力文档


文档评论(0)