当前位置: 首页 > article >正文

linux驱动-输入子系统框架讲解

Input 子系统包括三个层次,分别是设备驱动层,核心层,事件处理层。
为什么要分层呢?
        比如我们开发了一个驱动程序 a.c,其中里面有 100 行代码是通用的,然后我又开发了一个
驱动程序 b.c,那这 100 行代码就不用在重新写了,所以分层的好处就是不用重复劳动,降
低开发难度。
        所以编写一个输入子系统驱动程序,只需要写设备驱动层,核心层,和事件处理层的代码不
需要编写。 

        所有的子系统都有一个特点,分层,就是屏蔽底层差异化,给上层提供同一的接口,核心层就是做到承上启下的功能。

        假设上面的触摸,我们只需要写设备驱动层的代码,不需要写核心层和事件层

事件处理层:

        上层打开open,你设备节点是谁通过的呢?看上面的图就知道是事件处理层创建的 ,事件处理层,第一件事就是要创建设备节点,对设备节点操作read,write,就是对底层的设备进行操作。所以在驱动中要实现这些函数,但是操作的函数集也需要在事件处理成创建。 这就是事件处理层要做的第二件事,一句总结,就是给应用层提供了硬件操作的接口

设备驱动层:

        驱动层是和硬件打交道的,所以第一件事就是对硬件初始化。第二,在键盘上面敲了一个a,驱动层就要把这个a上报上去,也就是给到事件处理层。

核心层:  

        驱动要把a上报上去,给到事件处理层1,就要经过核心层,所以核心层就是和事件处理层和设备驱动层关联起来。在这一层要提供驱动的、和事件处理的注册和注销的方法。再有就是键盘回报的事件你给触摸屏的事件去处理,这是不行的,要对应起来。那键盘驱动的事件怎么知道要交给谁?这个时候就需要核心层了,可以理解核心层就是大管家,它会把对应的匹配起来,那这个时候是不是事件处层的代码也是需要自己写,答案是不需要,它里面有一个通用的代码,除非你是特需要求,需要固定备节点。


http://www.kler.cn/a/378323.html

相关文章:

  • 「Mac畅玩鸿蒙与硬件27」UI互动应用篇4 - 猫与灯的互动应用
  • PHP常量
  • CentOS9 Stream 设置禁用IPV6
  • lost+found目录实现文件找回的原理
  • npm入门教程18:npm发布npm包
  • 2342423
  • ERC论文阅读(04)--DialogueCRN论文阅读笔记(2024-11-03)
  • Apache POI(java操作Miscrosoft Office)
  • 江协科技STM32学习- P31 I2C通信协议
  • 多臂老虎机——入门强化学习
  • linux-环境变量
  • 心法利器[121] | 读源码:用mT5训练一个自动摘要模型(含代码)
  • 计算机毕业设计Python+大模型新闻自动分类 新闻舆情预测 新闻语料情感分析 新闻推荐系统 朴素贝叶斯分类算法 机器学习 深度学习
  • 【多模态读论文系列】LLaVA论文笔记
  • list与iterator的之间的区别,如何用斐波那契数列探索yield
  • Java后端面试内容总结
  • fetch 与 xmlHttpRequest 请求总结
  • IT运维的365天--018 如何在内网布置一个和外网同域名的网站,并开启SSL(https访问),即外网证书如何在内网使用
  • 【机器学习】回归树
  • 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用
  • Logback 常用配置详解
  • 第十九章 Vue组件之data函数
  • Python Matplotlib 如何处理大数据集的绘制,提高绘图效率
  • lc 73 矩阵置0 ACM模式
  • webpack5
  • 【RK3588 Linux 5.x 内核编程】-设备驱动中的sysfs