Skip to content

关于我

定位

Linux 内核学习方向。以源码阅读为主,关注 USB 子系统、设备模型、驱动 probe 与 pinctrl / GPIO 等路径,习惯从协议层 → 内核实现 → 驱动绑定串联分析问题。

本博客记录 Linux 内核相关的源码分析与学习笔记,侧重调用链梳理、协议与内核实现的对应关系,以及可复现的调试方法。

技术栈

领域内容
Linux 内核USB core、设备模型、probe 机制、pinctrl / GPIO、设备树与驱动绑定
调试工具Wireshark(USB 抓包)、trace-cmd、GDB、ftrace
语言 / 基础C、数据结构与计算机基础
阅读环境Linux 6.8 内核源码、QEMU / 开发板上的内核日志与跟踪

阅读指引

USB 子系统系列建议按以下顺序阅读:

  1. USB 2.0 枚举流程 — 协议层控制传输时序
  2. hub_port_init 调用链 — 插盘到地址分配
  3. usb_get_descriptor 调用链 — core 到 xHCI 的 URB 路径
  4. 枚举与两轮 Probe — 设备注册与驱动绑定
  5. UVC 驱动分析 — USB Video Class 类驱动

Device 侧(Gadget)

  1. Gadget 子系统概览 — 四层架构、两阶段生命周期、configfs 设计
  2. Configfs 组装分析gadget_infocdevcomposite 如何由脚本拼装
  3. UDC bind 分析udc_bind_to_driver、pending、pullup
  4. DWC2 接口总览gadget_opsep_ops 与框架交付边界
  5. Composite EP0 枚举 — Host EP0、composite_setup 与 T1/T2
  6. ACM Function 路径f_acm.cgserial_connect 与 ttyGS
  7. Gadget CDC ACM 串口实践 — configfs、/dev/ttyGS0 与 Host cdc_acm

其他内核专题STM32 Pinctrl · STM32 GPIO

调试与实践(具体问题排查):概览 · USB 记录

补充笔记(非主线):FreeRTOS 任务调度

站点与仓库

联系


欢迎通过 Issue 或邮件交流技术问题。文章如有疏漏,也欢迎指正。

基于 VitePress 构建