INPUT子系统 一:什么是Input子系统? (应用场景,用途) 二:怎么设计Input子系统的程序? (分配一个输入设备——注册一个输入设备——上报输入事件——注销一个输入设备——释放一个输入设备) 三:Input子系统需要知道哪些? (涉及的重要数据结构(input_dev,input_han ...
分类:
其他好文 时间:
2016-04-27 12:54:49
阅读次数:
259
/* 一:input_dev代表一个输入设备 二:input_event事件传送的载体,输入子系统的事件通过这个结构体包装传送给用户空间 三:input_handler事件驱动的主体,每一种处理方式对应一个handler结构体 四:input_handle用来连接input_dev和input_ha ...
分类:
其他好文 时间:
2016-04-21 15:12:39
阅读次数:
255
二.内核代码
2.1输入子系统设备驱动层
我们先从设备驱动层进行讲解
首先设备驱动层调用input_allocate_device进行申请input_dev结构体,接着对该结构体进行赋值,然后调用input_register_device进行注册设备。同时我们在open函数里定义中断函数,中断函数里实现input_report_key的操作,向核心层报告按键消息。
通过上面分析我们主要关注...
分类:
其他好文 时间:
2016-04-13 13:21:12
阅读次数:
230
在Linux中,按键、触摸屏、鼠标等等输入设备都可以依靠输入子系统提供的接口函数来实现他们的设备驱动,在输入子系统中,系统已经完成了这些输入设备的共性,所以根据子系统提供的接口,只需要完成各自的独特性即可完成一个输入设备的设备驱动。Linux中,输入子系统由设备驱动..
分类:
系统相关 时间:
2015-12-30 19:54:17
阅读次数:
232
Name struct input_dev — represents an input device Synopsis struct input_dev { const char * name; //name of the device const char * phys; //physical p...
分类:
系统相关 时间:
2015-10-10 15:23:22
阅读次数:
229
1.声明input_dev结构体 static struct input_dev *buttons_dev;2.init函数中分配input_dev结构体并对其设置、注册/* 1. 分配一个input_dev结构体 */ buttons_dev = input_allocate_device...
分类:
其他好文 时间:
2015-10-10 10:27:53
阅读次数:
180
input子系统的搭建要点:
核心层为事件驱动层和设备驱动层的注册提供API的实现、核心层为设备驱动层上报事件提供API的实现 、事件驱动层为应用层提供API的实现 。
(1)核心层:提供事件驱动层和设备驱动层所需的函数接口(为input dev和input handler建立联)
drivers/input/input.c:
##主要接口函数一览:##
①为事件驱动层提供的:
注册A...
分类:
其他好文 时间:
2015-04-21 11:15:33
阅读次数:
157
1. /dev/input目录 /dev/input目录下的事件都是在驱动中调用input_register_device(struct input_dev *dev)产生的。如我的盒子的/dev/input目录的内容如下:待续
分类:
系统相关 时间:
2015-04-12 13:14:30
阅读次数:
154
20150301 IMX257 输入子系统 2015-03-01 李海沿 一、输入子系统 1.输入子系统结构体定义 struct input_dev{ const char *name; 设备名 const char *phys; 设备在系统中路径 const char *uniq; struct ...
分类:
其他好文 时间:
2015-03-02 18:41:11
阅读次数:
280
在前文Linux/Android——input子系统核心
中概括了总体的结构,以及介绍了input核心的职责,其中有说道注册input设备时会去匹配已有的事件处理器handler,
而这个handler也是存放在一个链表里面的,这里介绍下input子系统中的事件处理input_handler机制.
evdev:
/kernel/drivers/input下众多事件处理器h...
分类:
移动开发 时间:
2014-12-30 20:45:24
阅读次数:
375