🌳 设备树全栈实战

📘 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