input子系统学习一:概述

输入设备总类繁杂,包括按键,键盘,触摸屏,鼠标,摇杆等等,它们本身都是字符设备,不过内核为了能将这些设备的共性抽象出来,简化驱动的开发,建立了一个Input子系统.Input子系统分为三层,从下至上分别是输入设备驱动层,输入核心层以及输入事件驱动层.

  • 核心层: 高效,无bug,可重用
  • 事件处理层: 负责与应用程序交互
  • 设备驱动层: 负责与底层输入设备交互

事件处理程序是标准的,对于所有的输入类是通用的.所以一般而言我们要实现的设备驱动程序,而不是事件处理程序.内核已经为我们提供了常用的事件处理程序,基本上如果没有特需要求,我们没有必要去实现事件处理程序.设备驱动程序可以利用一个存在的,合适的事件处理程序通过核心和用户应用程序交互.

考虑输入设备主要的工作过程都是:动作产生(按键,触屏……)-->产生中断-->读取数值(键值,坐标……)-->将数值传递给应用程序.最后一个步骤就属于事件的处理,对于同一类设备,他们的处理方式都是相同的,因此内核已在事件驱动层为我们做好了,不需我们操心,而产生中断-->读取数值是因设备而异的,需要我们根据具体的设备来编写驱动.一个大致的工作流程就是,input device向上层报告-->input core接收报告,并根据在注册input device时建立好的连接选择哪一类handler来处理事件-->通过handler将数据存放在相应的dev(evdev,mousedev…)实例的缓冲区中,等待应用程序来读取.当然,有时候也需要从应用层向设备层逆向传递,比如控制一些和设备相关的LED,蜂鸣器等.

输入子系统三个层次框架如下:

 

转载于:https://www.cnblogs.com/jetli-/p/5213602.html

linux input子系统学习(一)之 input-core linux中有众多的子系统,input子系统是其中的一种,用来处理一类型的输入设备,例如keypad,touchpanel,mice等等,我目前接触到就只有前2种也只写过前2种的驱动,所以后面的就只介绍到key的驱动以及TP的驱动了。      input的核心是一个文件,即input.c,(drivers\input),说实在的其实input子系统也是一种字符设备,只不过进行了一下封装。整个i 阅读详情

相关推荐

认识linux input子系统(一)

从用户态认识linux input子系统

ch-o-bits~ 1万+

Linux设备模型之input子系统详解

或者是id->flags没有定义,就会进入到MATCH_BIT的匹配项了.从 MATCH_BIT宏的定义可以看出。在这一节点,分析了整个input子系统的架构,各个环节的流程.最后还以evdev为例.将各个流程贯穿在一起.以加深对input子系统的理解.由此也可以看出.linux设备驱动采用了分层的模式.从最下层的设备模型到设备,驱动,总线再到input子系统最后到input device.这样的分层结构使得最上层的驱动不必关心下层是怎么实现的.而下层驱动又为多种型号同样功能的驱动提供了一个统一的接口.

sun13047140038的博客 968

Linux INPUT 子系统实验

当我们向 Linux 内核注册好 input_dev 以后还不能高枕无忧的使用 input 设备,input 设备都是具有输入功能的,但是具体是什么样的输入值 Linux 内核是不知道的,我们需要获取到具体的输入值,或者说是输入事件,然后将输入事件上报给 Linux 内核。第 33~37 行,驱动出口函数,第 35 行调用 input_unregister_device 函数注销前面注册的input_dev,第 36 行调用 input_free_device 函数删除前面申请的 input_dev。

qq_28576837的博客 1271

Linux驱动学习day19(input子系统及扩展固定设备节点)

本文介绍了Linux输入子系统的驱动开发框架与实现方法。输入子系统采用统一的事件处理机制,通过input_dev和input_handler的匹配实现设备与驱动的连接。主要内容包括:1)输入子系统框架解析,包括设备注册、事件上报流程;2)以触摸屏驱动为例,详细说明input_dev结构体设置、中断处理和事件上报的实现;3)通过GPIO模拟按键的完整驱动实现示例;4)总结事件上报机制和开发要点。输入驱动开发的核心是正确配置input_dev的事件类型和参数,并在中断处理中通过input_event()上报事件

weixin_71568456的博客 1211

input子系统一:输入设备驱动编写

input子系统一:输入设备驱动编写 在学习input子系统内核代码之前,先来看看我们如何编写一个符合input子系统框架的输入设备驱动,以最常用的触摸屏为例子。 1、驱动编写步骤 1、分配一个struct input_dev结构体 2、设置设备能产生哪类和哪些事件 3、注册 4、硬件相关的操作(中断、上报事件等) 2、接口函数 在编写之前先来看看会用到的几个关键的函数: 1、input_all...

weixin_43790707的博客 658

abaqus wcm插件下载_Abaqus随机短纤维增强复合材料建模插件

文末附Abaqus随机短纤维增强复合材料建模插件下载链接前言短纤维增强复合材料相对于长纤维增强复合材料来说更容易制备,且短纤维的填充性能略有改善,可制造复杂产品,广泛应用于车辆、航空航天、建筑等行业,对短纤维增强复合材料进行细观力学分析,可对其宏观力学性能进行预测、分析破坏机理等。接下来对随机短纤维增强复合材料建模插件进行介绍。NO.1 【算法简介】难点一:此插件核心在于判断生成的纤维是...

weixin_39974882的博客 2833

[Linux]input 子系统学习笔记(简单范例和四个基本函数)

输入子系统是为了将输入设备的功能呈现给应用程序。 它支持 鼠标、键盘、蜂鸣器、触摸屏、传感器等需要不断上报数据的设备。 分析了四个函数: 1. input_allocate_device 在内存中为输入设备结构体分配空间并进行初始化。 2. input_register_device()->input_attach_handler()->input_match_device()

Younix凌乱的草稿本 8247

手把手教你用PLECS仿真BUCK数字电源(含DSP代码实现)

本文详细介绍了如何利用PLECS仿真软件与Visual Studio 2022搭建高保真数字电源开发环境,手把手指导从BUCK电路建模、编写硬件感知的C控制算法到参数调优的全过程。重点阐述了通过DLL接口实现软件在环仿真,模拟DSP的ADC/PWM时序,并将验证后的代码无缝迁移至TI C2000系列DSP,构建从仿真到固件的完整数字电源开发闭环,显著提升开发效率与一次成功率。

oo7890的博客 396

Linux INPUT 子系统详解

Linux INPUT 子系统为输入设备的管理和处理提供了一种统一的框架,使得不同类型的输入设备可以以相同的方式被操作系统识别和处理。通过深入了解 INPUT 子系统的架构、工作原理和使用方法,可以更好地进行输入设备驱动开发和应用程序开发,提高系统的可扩展性和可维护性。同时,随着技术的不断发展,INPUT 子系统也在不断演进和完善,为用户提供更加丰富和便捷的输入体验。

千千道的博客 1504

[Vue][面试]谈谈你对MVC、MVP和MVVM的理解

谈谈你对MVC、MVP和MVVM的理解 答题思路:此题涉及知识点很多,很难说清楚,说透彻,因为MVC,MVP这些我们前端程序员自己甚至都没用过。但是恰恰反映了前端这些年从无到有, 从有到优的变迁过程,因此沿此思路回答将十分清除。 Web1.0时代 在web1.0时代,并没有前端的概念。开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常由多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、C#/Java/PHP代码, 系统整体架构可能如下图所

你好,欢迎光临! 723

mybaits-plus通用CRUD详解及代码案例

文章目录mybaitsplus通用CRUD插入操作方法定义测试用例mybaitsplus主键生成策略设置自增主键设置输入主键:UUID:ID_WORKER_STR:ID_WORKER:更新操作根据id更新方法定义:方法步骤根据条件更新方法定义:更新步骤:根据条件更新(可以更新NULL)删除操作根据id删除方法定义:删除步骤:根据 entity 条件删除方法定义:删除步骤:根据ID 批量删除方法定义:删除步骤:查询操作根据id查询方法定义:查询步骤:根据id批量查询方法定义:查询步骤:根据 entity 条件

流楚丶格念的博客 3406

Linux驱动之Input子系统

2、遍历input_dev_list链表,针对input_dev_list上每一个input_dev,均与注册的input_device进行匹配检测,若匹配检测成功,则调用input_handler->connect接口,进行input_handler与input_device的绑定(通过调用input_register_handle实现,也可以理解为在input_handler、input_device上完成input_handler、input_device的事件消息的订阅操作)。

Android系统攻城狮 714

Qt/C++ 音视频开发: 共享解码线程/重复利用解码/极低CPU占用/画面同步/进度同步

通过共享解码线程和重复利用解码技术,可以显著降低CPU占用,提高多媒体应用的性能。同时,画面和进度同步技术保证了视频播放过程的平滑体验。

走向CTO的路上... 988

input子系统学习笔记一:概述

输入设备总类繁杂,包括按键,键盘,触摸屏,鼠标,摇杆等等,它们本身都是字符设备,不过内核为了能将这些设备的共性抽象出来,简化驱动的开发,建立了一个Input子系统.Input子系统分为三层,从下至上分别是输入设备驱动层,输入核心层以及输入事件驱动层. 核心层: 高效,无bug,可重用事件处理层: 负责与应用程序交互设备驱动层: 负责与底层输入设备交互 事件处理程序是标准的,对于所有的输入类

li6322511的专栏 453

18、基于FSDD数据集的深度学习案例分析

本文基于FSDD(Free Spoken Digit Dataset)数据集,系统介绍了深度学习在语音数字识别中的应用。内容涵盖动态与静态计算图的对比、数据预处理流程(包括数据增强、固定长度处理和归一化)、监督学习与无监督学习的模型构建与训练过程,并通过实验对比了不同网络架构的性能。文中使用PyTorch实现2层全连接网络和自编码器模型,展示了正则化技术对提升模型准确率的关键作用。最后总结了关键技术并提出了实际应用建议,展望了未来在复杂模型、多模态融合和实时应用方向的发展潜力。

vscode6remote的博客 260

C++实现设计ATM机系统

这个示例实现了一个基本的ATM机系统,支持注册、登录、存款、取款、查询余额和保存数据等功能。当然,这只是一个简单的ATM机模拟,实际的ATM机系统需要更复杂的逻辑和更严格的安全措施。C++编写一个简单的ATM机系统,我将提供一个基本的实现示例,但由于ATM机系统的复杂性和安全性要求,这只是一个简单的模拟,不适合在实际环境中使用。试设计一简单模拟ATM机系统,系统以菜单方式工作,采用自定义函数设计各功能模块被主菜单调用,使之能提供以下基本选项。=========欢迎使用ATM=========

走向CTO的路上... 1243

linux驱动input子系统学习一(基础知识)

一.Linux中的input子系统介绍 Input驱动程序是linux输入设备的驱动程序,分成游戏杆(joystick)、鼠标(mouse和mice)、键盘(keyboard)、事件设备(event)。其中事件设备驱动程序是目前通用的驱动程序,可支持键盘、鼠标、触摸屏等多种输入设备。 Linux input 子系统将一个输入设备的输入过程分成了设备驱动(input device driver...

To_run_away的博客 3870

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux驱动学习之input子系统

input子系统框架编写input驱动我们只关心内核层,在内核层注册input子系统,然后进行事件上报就可以了。

m0_57485149的博客 2335

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Linux input 子系统详解

1. 模块概述 1.1.相关资料和代码研究 drivers/input/ include/uapi/linux/input-event-codes.h 2. 模块功能 linux核心的输入框架 3. 模块学习 3.1.概述 Linux输入设备种类繁杂,常见的包括触摸屏、键盘、鼠标、摇杆等;这些输入设备属于字符设备,而linux将这些设备的共同特性抽象出来,Linux input 子系统就产生了。 3.2.软件架构 输入子系统是由设备驱动层(input driver)、输入核心层(input core)、输

一口Linux的专栏 3327

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【IMX6ULL驱动学习】INPUT子系统

pinctrlgpioINPUT子系统主要包含以下几个部分readwriteioctlopenreadioctl。

weixin_52056217的博客 629

Linux驱动开发之Input子系统

一、引言 在Linux驱动开发的学习过程中,Input子系统绝对是你绕不开的一道关卡。 在Linux系统中,不论是按键、鼠标、键盘,亦或者是触摸屏,统统都使用Input子系统来处理输入事件。 二、Input子系统 1、Input子系统概述 Input就是输入的意思,因此Input子系统就是管理输入的系统,和Pinctrl、Gpio子系统一样,都是Linux内核针对某一类设备而创建的框架。 不同的输入设备在Input子系统所代表的含义不同,比如按键、键盘就是代表按键信息,鼠标和触摸屏则是代表坐标信

陈子陌的博客 1333

input子系统学习笔记

input子系统学习笔记

p6666666668的博客 661

(Linux驱动学习 - 11).Input 子系统

input 就是输入的意思,因此 input 子系统就是管理输入的子系统,和 pinctrl、 gpio 子系统一样,都是 Linux 内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触摸屏等等这些都属于输入设备,不同的输入设备所代表的含义不同,按键和键盘就是代表按键信息,鼠标和触摸屏代表坐标信息,因此在应用层的处理就不同,对于驱动编写者而言不需要去关心应用层的事情,我们只需要按照要求上报这些输入事件即可。为此 input 子系统分为 input 驱动。

kaneki_lh的博客 1405

input子系统详解1——input子系统简介

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除

主要记录嵌入式学习与开发过程。 1135
下一篇: input子系统学习二:数据结构
dde42613
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值