2020-04-28 14:40:15 +08:00
|
|
|
|
# 在根文件系统中查看设备树
|
|
|
|
|
|
|
|
|
|
## 设备树的查看
|
|
|
|
|
|
|
|
|
|
内核启动后会进入根文件系统,在根文件系统中如何查看设备树,查看设备树有助于调试驱动程序。
|
|
|
|
|
|
|
|
|
|
1. /sys/firmware/fdt:我们知道 uboot 会把 dtb 文件传给内核,并且 dtb 文件所占的那块内存会被保留下来,我们可以在内核启动之后,查看那块内存,查看里面原始的 dtb 文件;
|
|
|
|
|
2. /sys/firmware/devicetree:以目录结构呈现的 dtb 文件,根节点对应 base 目录。每一个节点对应一个目录,每个属性对应一个文件;
|
|
|
|
|
3. /sys/devices/platform:系统中所有的 platform_device,有来自设备树的,也有来自 .c 文件中注册的。对于来自设备树的 platform_device,可以进入 /sys/devices/platform/<设备名>/of_node,查看它的设备树属性。当驱动中的 probe 函数没有被调用时,可以看看有没有对应的平台设备,一旦有平台设备,并且平台设备与驱动匹配的话,驱动程序中的 probe 函数一定会调用的;
|
|
|
|
|
4. /proc/device-tree:是链接文件,指向 /sys/firmware/devicetree/base。
|
|
|
|
|
|
|
|
|
|
## 设备树的编译/反编译
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2020-04-28 14:40:15 +08:00
|
|
|
|
# 编译
|
|
|
|
|
dtc -I dts -O dtb xxx.dts -o xxx.dtb
|
|
|
|
|
# 反编译
|
|
|
|
|
dtc -I dtb -O dts xxx.dtb -o xxx.dts
|
|
|
|
|
```
|