🌳 设备树全栈实战
📘 30章 · 从裸机到Linux
⭐ 友好
📁 点击卡片跳转章节
01
设备树起源
演进历史
为什么需要设备树?从板级文件到设备树的演进,Linux内核中的角色。
📜 历史
🌿 基础
02
设备树基础语法
DTS
DTS文件结构、节点与属性、标签与引用、include机制。
📐 语法
🧩 节点
03
设备树编译器
DTC
DTC工具使用、编译与反编译、DTS到DTB转换、反汇编实战。
⚙️ 工具
🛠️ 编译
04
设备树绑定文档
bindings
内核文档解读,如何编写绑定文档。
📄 文档
📌 规范
05
中断控制器
interrupt
中断控制器节点、interrupt-parent、interrupts属性、级联映射。
⚡ 中断
🔗 级联
06
GPIO控制器
gpio
GPIO控制器节点、gpio-controller/#gpio-cells、GPIO号计算。
🔌 GPIO
🧮 计算
07
时钟与复位
clock/reset
时钟控制器、clock-cells/names、复位控制器、频率配置。
⏱️ 时钟
🔄 复位
08
内存映射
reg & ranges
reg属性详解、地址范围、ranges/dma-ranges、内存节点。
🧠 内存
🗺️ 映射
09
pinctrl子系统
引脚控制
pinctrl节点、pinctrl-0/names、引脚复用与电气属性。
📌 引脚
🔀 复用
10
SPI控制器
SPI
SPI控制器/从设备节点、cs-gpios、spi-max-frequency、模式配置。
🔗 SPI
⚡ 频率
11
I2C控制器
I²C
I2C控制器/从设备节点、clock-frequency、多路复用器。
🔤 I2C
🔀 多路
12
MMC/SDIO控制器
SD卡
MMC控制器节点、SD卡检测、总线宽度、高速模式。
💾 SD
🚀 高速
13
USB控制器
USB
USB控制器/PHY节点、OTG模式、Hub描述。
🔌 USB
🔄 OTG
14
显示与GPU
display
显示控制器、panel节点、display-timings、GPU电源管理。
🖥️ 显示
🎮 GPU
15
音频子系统
audio
音频控制器、DAI链接、codec节点、音频路由。
🎵 音频
🔊 codec
16
网络设备
以太网
以太网控制器、PHY节点、MAC地址、MDIO总线。
🌐 网络
📡 PHY
17
PCIe控制器
PCIe
PCIe控制器节点、总线范围、MSI中断、EP设备。
🔲 PCIe
📶 MSI
18
电源管理
regulator
电源域、regulator节点、operating-points-v2、CPU调频。
🔋 电源
⚡ OPP
19
热管理
thermal
thermal-zones、cooling-device、trip点、温控策略。
🌡️ 温度
❄️ 冷却
20
DMA控制器
DMA
DMA控制器、dma-cells/names、通道请求、引擎绑定。
📤 DMA
⚙️ 引擎
21
IOMMU/SMMU
内存管理
IOMMU节点、iommu-cells/map、SMMU流ID配置。
🛡️ IOMMU
🔐 SMMU
22
FPGA与可编程逻辑
FPGA
FPGA节点、fpga-region、部分重配置、桥接。
🔲 FPGA
🔄 重配置
23
Chosen & Aliases
启动参数
chosen节点、bootargs/stdout-path、aliases与设备别名。
🚀 启动
📛 别名
24
Overlay机制
动态覆盖
DT Overlay原理、语法、动态加载/卸载、运行时修改。
📂 Overlay
🔄 动态
25
U-Boot交互
fdt命令
U-Boot设备树处理、fdt命令、传递与环境变量。
🛥️ U-Boot
📟 fdt
26
ACPI对比
设计哲学
ACPI与设备树对比、适用场景、混合系统、UEFI。
⚖️ 对比
🖥️ ACPI
27
调试技巧
of_* API
解析日志、of_*调试、验证工具、常见错误排查。
🐞 调试
🔍 日志
28
性能优化
大小/速度
设备树大小优化、解析速度、缓存策略、编译调优。
⚡ 优化
📦 尺寸
29
安全考虑
防篡改
信息泄露、安全启动、设备树签名、可信设备树。
🔒 安全
🛡️ 签名
30
未来趋势
RISC-V / AI
设备树规范演进、RISC-V现状、Zephyr RTOS、AI芯片应用。
🔮 趋势
🧠 AI