内核分析
对 Linux 内核子系统与驱动源码的逐段阅读与分析。
Linux 内核
详见 Linux 内核分析 目录。
USB 子系统
- USB 2.0 枚举流程 — 协议层 Token / DATA0 / DATA1 / ACK
- hub_port_init 调用链 — 插盘到地址分配、读设备描述符
- usb_get_descriptor 调用链 — core 到 xHCI 的 URB 路径
- 枚举与两轮 Probe —
usb_new_device与驱动绑定 - UVC 驱动分析 — USB Video Class 类驱动结构
- Gadget 子系统概览 — Device 侧 UDC / composite / configfs
- Configfs 组装分析 —
gadget_info/cdev拼装与 bind - UDC bind 分析 —
udc/core配对与 pullup - DWC2 接口总览 —
gadget_ops、ep_ops交付边界 - Composite EP0 枚举 —
composite_setup、SET_CONFIGURATION - ACM Function 路径 — bind、
set_alt与 ttyGS 数据面 - Gadget CDC ACM 串口实践 — configfs +
ttyGS0
Pinctrl / GPIO 子系统
- STM32 Pinctrl 分析 — 设备树 pinmux 到
set_mux写寄存器 - STM32 GPIO 分析 — 设备树 gpiochip 注册到外设
led-gpios消费
Sound / ALSA
- 系列概览
- i.MX6ULL
/dev/snd设备节点 — Linux 4.9.88 BSP - i.MX6ULL 声卡播放路径 — 播放分层与调用栈
- i.MX6ULL 声卡录音路径 — 录音与播放对称差异
- ALSA PCM 状态机与 XRUN — 状态变迁与缓冲欠载/过载
BPF / kprobe
- 系列概览
- eBPF kprobe:load / attach / 命中 — 5.15 源码路径
- kprobe-on-ftrace 插桩实测 — NOP↔CALL 实验
调试与实践
针对具体问题的排查与实验记录(非成体系流程文)。
- 概览 · USB · 写作模板
- DJI Osmo UVC/UAC2 枚举排查 — eCos 上
2ca3:8004id_table 与 UAC2 probe 阻塞