文档章节

输入子系统

xiaocui911
 xiaocui911
发布于 2016/05/22 15:07
字数 661
阅读 57
收藏 1

输入子系统,顾名思义这本身是大神撸的一个系统。这个系统它不仅把输入设备底层驱动的共性部分(比如注册设备,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
2018/04/13
0
0
大型网站架构系列:电商网站架构案例

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

陶邦仁
2016/03/15
2.4K
0
史上最全win10下Linux子系统的安装及优化方案

相信大家都会对Linux系统有一定程度的需求,但是目前所有Linux发行版的桌面环境实在是不太友好,并不能完全满足我们所有的学习和娱乐。于是我们会想到安装Windows+Linux双系统,或者在Windo...

昌南何许人
2018/04/18
0
0
0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
05/21
44
0
[arm 驱动]Linux输入子系统分析

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

lilin9105
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
4
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部