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

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

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

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

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

事件处理层:

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

设备驱动层:

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

核心层:  

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


http://www.mrgr.cn/news/64846.html

相关文章:

  • 设计模式之结构型模式---装饰器模式
  • 代码随想录第十七天
  • 联动香港、成都、武汉三所高校!“2024 深圳国际金融科技大赛”校园行圆满结束
  • docker file容器化部署Jenkins(一)
  • 字符串统计(Python)
  • AIGC对传统内容创作行业的冲击
  • 项目模块十五:HttpResponse模块
  • [前端] 为网站侧边栏添加搜索引擎模块
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)
  • C语言指针基础
  • 在linux系统中安装pygtftk软件
  • 数据结构与算法—基础篇
  • 最大报酬 (E卷)
  • Docker远程管理和应用容器远程部署
  • 基于django+Vue的在线学习平台 (含源码数据库)
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-31
  • 提高交换网络可靠性之认识STP根桥与端口角色
  • CTF-pwn:libc2.27指针劫持[gyctf_2020_signin]
  • 多臂老虎机——入门强化学习
  • Qt 应用开发之 MVC 架构
  • Linux入门-基础指令和权限
  • ssm044基于java和mysql的多角色学生管理系统+jsp(论文+源码)_kaic
  • 有向无环图的拓扑排序——CSP-J1真题讲解
  • 高等数学习题练习-函数的连续性
  • 支持 Mermaid 语言预览,用通义灵码画流程图
  • ERC论文阅读(04)--DialogueCRN论文阅读笔记(2024-11-03)