🔧 设备树调试 · 实战目录
30 章 · 从入门到精通
01
设备树基础
什么是设备树?为什么需要设备树?在Linux内核中的角色
02
设备树语法入门
节点、属性、标签、别名、包含文件(.dtsi)基本语法
03
设备树编译与反编译
dtc工具,.dts → .dtb,反编译回.dts
04
设备树绑定文档
阅读内核 Documentation/devicetree/bindings/ 文档
05
地址编码
reg、#address-cells、#size-cells、ranges
06
中断控制器
interrupt-parent, interrupts, interrupt-controller
07
时钟与设备树
clocks, clock-names, assigned-clocks, clock-frequency
08
GPIO与设备树
gpios, gpio-controller, #gpio-cells, pinctrl
09
pinctrl配置
pinctrl-names, pinctrl-0, 引脚复用与电气属性
10
电源管理
power-domains, regulator, supply属性
11
DMA配置
dmas, dma-names, dma-ranges
12
IOMMU/SMMU
iommus, iommu-map, dma-coherent
13
热管理
thermal-zones, cooling-maps, trip点
14
显示与GPU
display-timings, panel, GPU节点
15
音频配置
sound节点, codec, DAI link
16
网络设备树
ethernet节点, PHY连接, mdio总线
17
USB配置
usb控制器, phy, dwc3, ehci/ohci
18
PCIe设备树
pcie节点, bus-range, device_type, interrupt-map
19
MMC/SDIO
mmc控制器, sdhci, slot, wp-gpios
20
SPI与I2C
spi控制器, i2c控制器, 从设备节点
21
NAND与eMMC
nand控制器, 分区表, ecc-strength
22
FPGA设备树
fpga-region, partial-reconfiguration, firmware-name
23
系统内存
memory节点, reserved-memory, dma-ranges
24
Chosen节点
bootargs, stdout-path, initrd-start/end
25
调试工具
dt-utils, dtc, fdtdump, dtc -I fs
26
错误定位
常见编译错误、运行时错误、overlay错误排查
27
设备树Overlay
overlay语法, target, __overlay__, __fixups__
28
U-Boot与设备树
加载、修改、fdt命令使用
29
设备树与ACPI对比
嵌入式场景下优劣分析
30
实战案例
从零编写I2C触摸屏设备树节点并调试成功