2keypad之输入子系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档