sylixos input子系统学习、调试记录

news2024/11/15 15:41:14

Input 子系统框架图:

Xinput设备驱动层:

将所有设备抽象成xmes、xkbd设备,上层程序(如Qt)就可以像操作普通字符设备一样操作它们。

Xinput核心处理层:

从物理设备取得输入事件,然后通过消息队列通知给xinput设备驱动层,唤醒上层应用。

物理设备层:

设备的驱动程序需要驱动工程师自己编写。通过专用的结构体传递鼠标、键盘事件给xinput子系统。

        xinput 模块加载时会通过环境变量 KEYBOARD MOUSE 获取当前需要关注的 input

设备名称,并注册 xinput 设备驱动、建立 xinput 设备,最终创建 xinput 最重要的 xinput_scan 线程。

        xinput_scan 线程创建之后会尝试打开 xinput 模块加载时已设置的需关注的 input 设备。

若打开成功,则记录下其文件描述符 fd,作为当前需要关注的 input 设备之一。

        xinput_scan 线程使用了多路 I/O 复用的 select 函数,将已打开的 input 设备文件描述符、系统热插拔设备“/dev/hotplug”文件描述符归入同一个描述符集,监听描述符集中所有描述符的状态。

矩阵键盘调试过程记录:

要想顺利将中断中的数据传到上层,要设置好以下几点————

1、环境变量三处设置

keypad要想成功上报数据,Qt相关的环境变量里就要加上xkbd。

2、select函数要在驱动的ioctl中实现。(关于select可以详看这篇文章:SylixOS字符设备驱动开发(十二) | 南京养鸡二厂)

3、实测keypad.ko要在xinput.ko之前注册。在之后注册,系统起来后没有调用到open()。

4、报上去的是对应的ASCII码,大写英文要通过大写锁定或者shift组合键完成。Press、Release操作都要将键值发送出去。

 

touch驱动数据流向:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

校招失败后,在小公司熬了 2 年终于进了字节跳动,竭尽全力....

其实两年前校招的时候就往字节投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…

【软件测试面试】国企6年测试经验大D佬分析总结测试团队面试问题......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 国企测试大佬测试面…

一起自学SLAM算法:11.5 强化学习与自主导航

连载文章,长期更新,欢迎关注: 强化学习(Reinforcement Learning,RL)[21]属于机器学习领域的一个分支,其学习目标是获得最大回报。在10.3.1节中已经讨论过,机器学习过程主要涉及四个要…

【Java并发详解】

参考书目: 堆和方法区中的数据是可以被共享的 堆中的数据是被栈中的变量所持用的,栈是线程隔离的,每个线程私有一个栈,所以栈中的数据不共享 调用a方法时,jvm会给a方法创建一块内存区,让其入栈&#xff…

UIRecorder安装、录制、回放

Github地址:https://github.com/alibaba/uirecorder/blob/master/README_zh-cn.md 支持 android ios 和pc端的自动化脚本录制。无线native app(Android, iOS)录制是,是基于macaca实现的:https://macacajs.com 整体组成架构 UIRecorder录制功…

Dubbo服务开发和运行流程【java面试】

(1)问题分析:考官主要想考核dubbo的原理,还有dubbo在项目中的使用。(2)核心答案讲解:dubbo服务开发流程:maven工程中pom文件先导入dubbo依赖jar包搭建zookeeper注册中心写好服务端工程并配置dubbo服务端配置,并关联上z…

Spring概览——最佳入门实践

1、Spring Framework Spring 基础框架,可以视为 Spring 基础设施,基本上任何其他 Spring 项目都是以 Spring Framework 为基础的。 1.1、Spring Framework特性 建议新手先看完的最佳实践,再回头看这一段。 非侵入式:使用 Spri…

Java List按照某字段去重

Java List按照某字段去重嘚吧嘚distinct示例一示例二根据某个字段去重Collectors.collectingAndThen()嘚吧嘚 Java8流的新类java.util.stream.Collectors实现了java.util.stream.Collector接口,同时又提供了大量的方法对流(stream)的元素执行各种统计操作。 distinc…

实战: 跨年烟花代码的实现(附源码)

目录 前言 一、pandas是什么? 二、代码结构 1.介绍主html代码 2. js文件介绍 GameCanvas.js script.js 运行效果 前言 本文章将介绍跨年烟花代码的实现以及源代码 提示:以下是本篇文章正文内容 一、pandas是什么? 示例:pandas …

css3-动画

目录语法转换平移旋转缩放复合属性的顺序问题过渡动画帧动画案例案例1-热点图dot(缩放)案例2-热点图dot(缩放)案例3-开红包(旋转)问题问题1-transform不起作用问题2 - 过渡动画不起效果语法 转换 css3中的转换允许我们对元素进行旋转、缩放、移动或倾斜。它分为2D转换 或 3D转…

开箱即用的物联网平台-IoTLink

物联网平台是物联网生态系统的重要组成部分,也是一个快速增长的市场,物联网平台为企业提供了巨大的价值,使他们能够降低开发成本、加速启动和简化流程。 一个完整的物联网系统需要硬件、连接、软件、用户界面等。在较高的层面上,…

menuconfig的执行过程

menuconfig (1)首先在uboot源码顶层目录下的Makefile文件中查找config(%表示省略) (2)执行make menuconfig,分别打印输出$(MAKE)、$(bulid)、$可知其对应的内容,如上图所示 总结&a…

用docker部署django后台作为webstack的后台管理系统-其二

0 序言 在之前的博客中: 用docker部署webstack导航网站-其一https://blog.csdn.net/qq_41938259/article/details/128736551?spm1001.2014.3001.5501我成功的将webstack官方推荐的docker容器部署了出来,但是官方的docker容器后端使用的是PHP&#xff0…

08_FreeRTOS列表和列表项讲解

目录 列表和列表项的简介 列表 列表项 迷你列表项 列表和列表项的关系 列表相关API函数介绍 初始化列表vListInitialise函数详解 列表项的初始化函数vListInitialiseItem函数 列表项的插入vListInsert函数 列表项末尾插入vListInsertEnd函数 列表项的删除函数uxLis…

零入门容器云网络实战-5->路由知识总结

本篇文章主要用于收集、整理、总结路由相关知识点。 1、路由分为几种? 直连路由静态路由(基本静态路由,等价静态路由,活动静态路由,缺省静态路由)动态路由 通过路由协议从相邻路由器学习到的。路由协议&am…

一,SpringMVC入门

0 MVC设计模式 View(视图):页面(jsp、html),接收用户数据和显示结果。 Controller(控制器):action,接收请求,决定程序执行流程。 Model&#xf…

【深度学习】——循环神经网络RNN及实例气温预测

引言 密集连接网络和卷积神经网络都有主要的特点,那就是它们没有记忆。它们单独处理每个输入,在输入和输入之间没有保存任何状态。举个例子:当你在阅读一个句子的时候,你需要记住之前的内容,我们才能动态的了解这个句子…

三、SqlSession的创建以及执行流程

简介 SqlSession接口提供了查询,插入,更新,删除方法,Mybatis中所有的数据库交互都由SqlSession来完成。SqlSession 对象完全包含以数据库为背景的所有执行 SQL 操作的方法,它的底层封装了 JDBC 连接,可以用…

微服务链路追踪SkyWalking学习笔记

目录 1、skywalking是什么 1.2 链路追踪框架对比 1.3 性能对比 1.4 Skywalking主要功能特性 2、 SkyWalking 环境搭建部署 2.1 下载 SkyWalking 2.2 搭建SkyWalking OAP 服务 2.3 SkyWalking中三个概念 3、 SkyWalking 接入微服务 3.1 linux环境—通过jar包方式接入 …

SAP ADM100-2.5 系统启动:日志文件

本节将介绍SAP ABAP系统启动时最重要的log文件和Trce文件,以掌握通过使用系统启动log文件和trace文件分析系统问题。 1、记录系统启动过程 启动过程是一个特别重要的阶段,因此该过程将被操作系统、SAP系统、数据库记录。如果SAP系统没有启动,那么你将在log日志文件中发现相…