Linux设备模型的核心是使用Bus、Class、Device、Driver四个核心数据结构,将大量的、不同功能的硬件设备(以及驱动该硬件设备的方法),以树状结构的形式,进行归纳、抽象,从而方便Kernel的统一管理。学习平台mt8768,内核版本kernel-4.9

阅读全文 »

    configfs 是 Linux 内核中的一个虚拟文件系统(vfs),他和 sysfs 类似, 都是以目录文件的形式导出到用户空间和用户交互, 虚拟表示 configfs 中的"目录"只是一个用户界面的表现形式, 没有实际的物理存储空间分配, 目录结构只是内核对象的一种层次化展示方式. 每个"目录"实际上映射到一个 config_group, 目录操作被转换为对应的 config_group 操作, 比如 mkdir 实际上是调用 make_group 来创建新的内核配置项. 文件系统操作都被转换为对应的内核对象操作,通过这些回调接口来实现用户空间和内核空间的交互.

    由于 configfs 是 usb hcd 驱动的前置部分, 因此虽然是文件系统的内容, 但是还是分类 usb 在驱动中. 在内核中 configfs 几乎只用于配置 usb.

阅读全文 »

    终端是计算机系统中重要的交互工具,从最初的机械式电传打字机到现代的虚拟终端,它承载了计算机发展的许多关键技术。本文将从终端的历史谈起,介绍其发展过程中的重要阶段,接着分析终端驱动的实现原理,最后通过代码实现一个简单的终端接口,帮助读者从理论到实践更好地理解终端的工作原理。希望这篇文章能为对终端技术感兴趣的读者提供一些启发和参考。

阅读全文 »

本文基于君正平台(SoC)和其集成的 DWC2(DesignWare® USB 2.0 Controller),对 USB 子系统的核心流程进行了详细分析。文章主要聚焦于以下几个方面:

  • USB 设备描述符和 urb 通讯
  • USB 设备驱动管理
  • USB 主机控制器(HCD)的注册流程;
  • USB 设备的识别流程;

希望本文能为从事相关开发或研究的读者提供有价值的参考

阅读全文 »

    drm 学习记录, 基础知识部分请参考何小龙的drm专题, 该系列博客非常详细的介绍了drm 的整个框架. 博主也是通过该系列文章入门, 只是有很多地方不是很理解, 于是参考内核源码进行一些补充. 文章内容引用会该专题部分内容.

阅读全文 »

本文记录了在 RK3566 平台上,U-Boot 中设备树的加载与使用过程,并对设备模型(Device Model, DM)的核心机制进行了分析。文章主要包括以下内容:

  • U-Boot 中设备树的加载
  • U-Boot DM 模型的创建机制及其核心实现
  • RK3566 平台上 DM 模型的具体构造流程
  • dm 模型数据结构
  • 常见的接口说明
阅读全文 »

    rk 关机充电的显示基于 minui 显示框架, 它具有简单的图形绘制, 以及解析 png 图片并将其简单的显示出来的能力. 它支持三种显示框架 fbdevdrmadf. 由于需要解析 png 图片因此也需要使用到 libpng 库.

阅读全文 »

    中断是处理器用于异步处理外围设备请求的一种机制,可以说中断处理是操作系统管理外围设备的基石,此外系统调度、核间交互等都离不开中断,它的重要性不言而喻,本文结整理 linux 中断相关知识点。注意:本文只讨论 arm 架构,对于其他架构的不做深入研究。

阅读全文 »
0%