
输入子系统
文章平均质量分 73
sfrysh
嵌入式开发,本博客大部分资源来自网络,为学习交流之用,如有侵犯你您的版权,实属无心,请给本人留言,本人会及时删除。
展开
-
linux 2.6 输入子系统 键盘驱动的实现
好久没来了!写点东西.关于linux 2.6下面的键盘驱动的实现. 2.6内核采用"input sub system" 的概念.将输入驱动分成三块: driver,input core和Event handler. "一个输入事件,如鼠标移动,键盘按键按下,joystick的移动等等通过 Driver -> InputCore -> Eventhandler -> userspace 的顺序到达用户空间传给应用程序。" 关于输入子系统详细的文章有一个老兄写了一篇: http://blog.转载 2010-07-28 20:09:00 · 1748 阅读 · 0 评论 -
Android 多点触摸接口
简介 为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据。这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息。使用说明 单点触摸信息是以ABS承载并按一定顺序发送,如BTN_TOUCH、ABS_X、ABS_Y、SYNC。而多点触摸信息则是以ABS_MT承载并按一定顺序发送,如ABS_MT_POSITION_X、ABS_MT转载 2011-11-24 08:28:11 · 1867 阅读 · 0 评论 -
Android输入事件流程中的EventHub分析及源码演示
Android2.3的输入事件流程与以前版本有了较大的不同,这里做一下详细的分析,最后我把自己分析时用的演示代码放在了这里:http://code.google.com/p/flying-on-android/下面的分析都是基于这些源码的,大家可以下载下来一边看源码一边看转载 2011-08-19 10:42:32 · 1985 阅读 · 1 评论 -
编写Linux下Input设备的检测程序
最近玩了下Android-x86的eclair,主题风格相对之前的1.6好看了很多,而且还加了不少之前没有的功能。但是触摸屏不能用,在终端下用getevent命令查看事件信息,发现得到的绝对坐标有很大出入(4096*4096)。于是想自己试着去解决这个问题。同时在Ubuntu下测试,发现居然没有getevent命令,当然可以用cat /dev/inpu/eventX查看事件信息,但是显示出来的是一堆乱码,怎么办?那就自己编写个Linux输入设备的测试小程序来检测问题所在吧,最后测试结果发现和在And转载 2011-01-26 14:50:00 · 1137 阅读 · 0 评论 -
linux 多点触控协议
<br />多点触摸协议 <br /> <br />------------------------- <br />Copyright (C) 2009 Henrik Rydberg <rydberg@euromail.se > <br /><br />讨论: datangsoc@hotmail.com<br /> <br /> <br /> <br />简介 <br />为了使用功能强大的多点触控设备,一种方案是上报用户层所需的详细的手指触摸数据。这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报转载 2010-11-18 12:54:00 · 1331 阅读 · 0 评论 -
Android Keyboard/Touch Panel分析
分析一下 Android 是如何读取按键及Touch Panel 的驱动的。主要在$(ANDROID_DIR)/frameworks/base/libs/ui/EventHub.cpp这个文件中,这是在 HAL 层,将一步步分析 Android 上层是如何接受事件的。 一, 先看一下 Android HALClass EventHub 在 $(ANDROID_DIR)/frameworks/base/include/ui/eventhub.h 定义. i. scan_dir(const char *dir转载 2010-12-01 21:51:00 · 2655 阅读 · 0 评论 -
Android键盘系统
<br />Android键盘系统<br /> Android中的键盘系统的生命周期从系统的启动开始到系统的关闭一直存在着,因为,在这整个过程中我们希望按下的没一个按键都会有相应的事件发生。通过调研发现,Android键盘系统贯穿着Android框架的最底层——Linux内核(驱动)到上层JAVA架构层——SystemServer。<br />与android键盘系统关系紧密的几个文件从下层往上层依次为:Goldfish_event.c(处于Linux内核)、EventHub.cpp(硬件抽象层)、c转载 2010-12-01 17:36:00 · 1954 阅读 · 0 评论 -
Android键盘系统相关代码分析(1)
<br />EventHub.cpp文件中open_device函数浅析<br /> <br /> 用户态中,与内核态联系紧密的一个函数是open_device,它位于EventHub.cpp文件中,该函数有大量的底层操作,以完成上层对硬件的操作。该函数的首部为:<br />int EventHub::open_device(const char *deviceName)<br />其中参数有scan_dir()函数获得。在这里,deviceName=”/dev/input/event0”<br转载 2010-12-01 17:30:00 · 1944 阅读 · 0 评论 -
Android 事件处理
<br />Android 事件处理<br />--学习笔记2(金海建)<br />目的:通过全面的分析Android的鼠标和键盘事件。了解Android中如何接收和处理键盘和鼠标事件,以及如何用代码来产生事件。<br />主要学习内容:<br />1. 接收并处理鼠标事件:按下、弹起、移动、双击、长按、滑动、滚动<br />2. 接收并处理按键事件:按下、弹起<br />3. 模拟鼠标/按键事件<br /><br />1. Android事件<br />现代的用户界面,都是以事件来驱动的来实现人机交换的,转载 2010-11-29 12:49:00 · 4625 阅读 · 0 评论 -
Android事件处理分析+Android事件处理 +Android输入事件流程
Android事件处理分析http://blog.youkuaiyun.com/linweig/archive/2010/02/27/5330391.aspx按键事件 对于按键事件,调用mDevices->layoutMap->map进行映射。映射实际是由 KeyLayoutMap::map完成的,KeyLayoutMap类里读取配置文件qwerty.kl ,由配置 文件 qwerty.kl 决定键值的映射关系。你可以通过修 改./development/emulator/keymaps/qwerty.kl来改变键值的转载 2010-11-29 12:56:00 · 1819 阅读 · 0 评论 -
Android 架构解析及驱动 键盘篇
-- 作者:老树-- 发布时间:2010-6-2 15:01:19-- Android 架构解析及驱动 键盘篇一、用户空间 ADROID 2.1 架构解析 7 键盘 以上链接,详细介绍了Android用户空间按键的操作,最终通过不断轮询所有设备,直到读取有POLLIN事件产生的设备状态:if(mFDs[i].revents & POLLIN) {res = read(mFDs[i].fd, &iev, sizeof(iev));......二、底层驱动1.设备注册stati转载 2010-07-28 19:23:00 · 1986 阅读 · 0 评论 -
Linux Input Device 介绍: APIs
Linux 的 Input Device 是重要的一个 subsystem,在进行实例介绍前,先大略了解一下相关的 API。 Linux Input Device input.c是Linux的"input"驱动程式,主要支援键盘与滑鼠的输入;input.c介面有趣的地方是采用了事件(event)的方式来处理输入,以下是input.c介面重要的资料结构与函数: * struct input_dev * void input_event(struct input_dev *dev, unsig转载 2010-07-28 18:12:00 · 1382 阅读 · 0 评论 -
浅析linux下键盘设备工作和注册流程
浅析linux下键盘设备工作和注册流程【浅析linux下鼠标驱动的实现】 input_init()=>=>class_register(&input_class);注册input类input_proc_init();创建proc下的目录和文件register_chrdev(INPUT_MAJOR, "input", &input_fops);注册驱动程序到cdev_map上,以待驱动设备.drivers/input/keyboard/pxa3xx_keypad.c为我们的keyboard设备,pxa3xx_转载 2010-07-28 17:31:00 · 1392 阅读 · 0 评论 -
Linux Input Device
Linux 的 Input Device 是重要的一個 subsystem,在進行實例介紹前,先大略了解一下相關的 API。Linux Input Deviceinput.c是Linux的”input”驅動程式,主要支援鍵盤與滑鼠的輸入;input.c介面有趣的地方是採用了事件(event)的方式來處理輸入,以下是input.c介面重要的資料結構與函數:* struct input_dev* void input_event(struct input_dev *dev, unsigned int type转载 2010-07-28 20:31:00 · 1628 阅读 · 0 评论 -
Android输入输出机制之来龙去脉之前生后世
先讲一下基本一般的输入处理方式的知识。一般的输入输出采用生产者,消费者模式,并构造队列进行处理,如下图 这种输入模型在android的系统中很多地方采用,先从最底层说起: 为了由于触屏事件频率很高,android设计者讲一个循环线程,拆分为两级循环,并做了个队列来进行缓冲。InputDispatcherThread和InputReaderThread转载 2011-11-24 21:17:36 · 3209 阅读 · 1 评论