文档章节

输入子系统

xiaocui911
 xiaocui911
发布于 2016/05/22 15:07
字数 661
阅读 56
收藏 1
点赞 2
评论 0

输入子系统,顾名思义这本身是大神撸的一个系统。这个系统它不仅把输入设备底层驱动的共性部分(比如注册设备,open、write等)编写成一个大集合 以供调用,而且把与底层相匹配的处理事件程序也完成了。所以你只需要用这些集合把相对应的底层驱动设置好后注册进系统就可以了,这样不仅省去了很多事而且 保护了内核的统一。

首先我们先设置好相应的驱动(这其中最主要还是设置input_dev这个结构体和set_bit()等函数),然后注册。当输入事件发生时(按下 鼠标、点开显示屏),内核通过(input_report_...)函数向输入子系统报告发生的事件(其中这个函数最主要的部分还是 input_event函数),然后通过输入子系统匹配到相应的处理事件中去,而通过这个处理事件函数我们就可以连接到上层的应用中去,这就是大致的过程 了。

通过这个过程知道事件驱动一部分,输入子系统本身一部分和底层驱动三部分组成了输入子系统。而和上层有关的函数无非就是 open,write.read.close等,和底层有关的无非就是寄存器的操作等。这些在输入子系统其实同样适用,不过对输入子系统这个要更简单,因 为在事件处理部分我们的linux大神已经帮你完成了,你只需要把相应的底层驱动匹配上去就行,所以我们要做得就是完成底层驱动的部分,但是呢,对底层驱 动大神们怕你撸的还是不够规范所以也把一些简单的接口给你,你只需要直接调用就可以了。。说是输入子系统,但我已经把这么明显的分离分层思想已经暴露出来 了。我们把整个系统分层为上层应用----下层驱动(这就是分层)然后又把下层驱动分离为事件驱动和设备驱动(这就是分离)。

这只是输入子系统的主要部分,其他的部分一样。。

一个例程:http://www.oschina.net/code/snippet_2241389_52566(只有部分注释)

© 著作权归作者所有

共有 人打赏支持
xiaocui911
粉丝 6
博文 69
码字总数 14765
作品 0
深圳
程序员
③tiny4412 Linux驱动开发之输入子系统

本次介绍Linux的输入子系统的驱动开发. Linux 内核的输入子系统为鼠标、键盘、触摸屏、游戏杆等输入设备提供了驱动框架。 当程序员要为自己的输入设备编写驱动程序时,只需要实现从设备获取输...

qq_23922117
04/13
0
0
大型网站架构系列:电商网站架构案例

大型分布式网站架构 大型分布式网站架构技术总结 大型网站架构系列:电商网站架构案例 分布式大型网站,目前看主要有几类1.大型门户,比如网易,新浪等;2.SNS网站,比如校内,开心网等;3.电...

陶邦仁
2016/03/15
1K
0
[arm 驱动]Linux输入子系统分析

首先说明一下,本文是基于Linux-2.6.38版本内核来分析Linux输入子系统架构和原理的。这阵子本来没有打算花时间来分析Linux input system的,然而当在研究S3C6410触摸屏驱动的时候悲剧不期而至...

lilin9105
06/26
0
0
Bash On Windows beta版食用笔记

微软于今天发布了Windows一周年版(RS1,1607版,10.0.14393,版本名真多),其中我感兴趣的就是Bash On Windows这个功能了,这个就是Windows内嵌了一个Linux子系统,只不过目前还是beta版,所...

╭ァの修罗
2016/08/05
327
0
[arm驱动]input system 子系统的驱动编写

更多可参考 Linux输入子系统分析 input 子系统架构总结 1、定义一个static struct input_dev结构体 static struct inputdev *mybuttondev; 2、初始化时分配input_dev结构体 mybuttondev = in...

lilin9105
06/26
0
0
Windows鼠标键盘(PS2)驱动框架

常用的鼠标类型:串口鼠标、PS/2鼠标、USB鼠标(HID) 常用的键盘类型:串口键盘、PS/2鼠标、USB键盘(HID)非HID鼠标键盘(PS/2鼠标键盘) 物理配置方式 上图左边展示了键盘鼠标设备通过独立的控制...

xiejianjun417
05/24
0
0
ICASSP 2018 | 阿里巴巴论文提出针对影视作品的语音情感识别信息融合框架

  机器之心发布   作者:陶菲/Fei Tao、刘刚/Gang Liu、赵情恩/Qingen Zhao      语音领域的顶会 ICASSP 2018 将于 4 月 15-20 日在加拿大阿尔伯塔卡尔加里市举行。据机器之心了解,...

机器之心
04/10
0
0
linux驱动开发——Input驱动

什么是INPUT Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能来与用户空间交互。输入设备一般包括键盘,鼠标,触摸屏...

柳帅
2013/01/11
0
1
【白话设计模式二】外观模式(Facade)

白话设计模式 工厂模式 单例模式 【白话设计模式一】简单工厂模式(Simple Factory) 【白话设计模式二】外观模式(Facade) 【白话设计模式三】适配器模式(Adapter) 【白话设计模式四】单例模式...

陶邦仁
2016/02/15
590
1
适配器 VS 装饰者 VS 桥接 VS 代理 VS 外观

适配器模式   适配器模式和其他三个设计模式一般不容易搞混,它的作用是将原来不兼容的两个类融合在一起,uml 图也和其他的差别很大。  uml 类图:] 装饰者模式   装饰者模式结构上类似...

1071954237
2016/11/01
20
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

回想过往,分析当下,着眼未来

好久没有真正的在纸质笔记本上写过东西了,感觉都快不会写字了,笔画都不知道怎么写了。接下来就说说咱们的正事。 2018年7月22日,我做了一个决定,那就是去参加安全培训(可能是我职业生涯中...

yeahlife
39分钟前
1
0
关于工作中的人际交往

关于工作中的人际交往 Intro 写了篇发泄情绪的博客,但不会发布出来。 大概就是,要么忍,要么滚。 以及一些不那么符合社会主义核心价值观,不满于大资本家与小资本家剥削的废话。

uniqptr
44分钟前
0
0
springMVC的流程

1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(...

JavaSon712
今天
0
0
大数据教程(3.2):Linux系统软件安装之自动化脚本

博主前面文章有介绍过软件的安装,可以帮助IT人员顺利的完成功能软件安装;但是,对于我们运维人员或者需要管理软件安装的项目经理来说,有些应用一次行需要搭建很多台相同的软件环境(如tom...

em_aaron
今天
0
1
Spring Boot 2.0.3 JDBC整合Oracle 12

整合步骤 1. Oracle驱动引入 Oracle驱动一般不能通过maven仓库直接下载得到,需自行下载并导入到项目的lib目录下,建议通过如下pom依赖引入下载的Oracle驱动 <!-- Oracle 驱动 -->...

OSC_fly
今天
0
0
java 8 并行流 - 1

下面创建一个并行流,与顺序流 //顺序流Stream.iterate(0L, i -> i + 1) .limit(Integer.MAX_VALUE) .reduce(0L, Long::sum);//并行流Stream.iterate(0L, i -> i......

Canaan_
今天
0
0
数据结构与算法5

二分法采用向下取整的方法 使用有序数组的好处是查找的速度比无序数组快的多,不好的方面是因为要将所有靠后的数据移开,所以速度较慢,有序数组和无序数组的删除操作都很慢。 有序数组在查找...

沉迷于编程的小菜菜
昨天
1
1
SpringBoot | 第十一章:Redis的集成和简单使用

前言 上几节讲了利用Mybatis-Plus这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上mongodb和redis进行这方面的需求。...

oKong
昨天
5
0
对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
昨天
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部