linux开发之设备树

设备树的基本概念

1.什么是设备树?为什么叫设备树呢?

设备树是描述硬件的文本文件,因为语法结构像树一样。所以叫设备树。

2.基本名词解释

<1>DT:Device Tree //设备树

<2>FDT:Flattened Device Tree //开放设备树,起源于0penFirmware(0F)

<3>dts:device tree source的缩写 //设备树源码

<4>dtsi:device tree source include的缩写 //通用的设备树源码

<5>dtb:device tree blob的缩写//编译设备树源码得到的文件

<6>dtc:device tree compiler的缩写 //设备树编译器

比如有两个开发板,都是用相同的芯片RK3568,虽然这两个板子不一样,但是芯片相同,所以会有很多相同的地方,这些相同的地方就由dtsi去描述,也就是dtsi描述芯片的东西,dts描述外设。通用的部分只需要包含dtsi就可以了
DTS和DTSI经过DTC编译后,变为DTB文件,DTB文件就是板子上用的文件

查看内核源码中的dts
那么在这个文件夹下找到需要的开发板的dtsi和dts
如果没有自己开发板需要的设备树文件怎么办,只需要在这个文件夹下,加入就可以了,比如复制一个相似的板子的设备树文件,然后修改一下名字,再然后修改设备树文件

64位arm的设备树文件,这里就是具体的相关平台了,进去就可以看到芯片相关的了


如何编译设备树

命令格式

编译设备树:dtc -I dts -0 dtb -o xxx.dtb xxx.dts

反编译设备树:dtc -I dtb -0 dts -o xxx.dts xxx.dtb

dtc编译器在内核源码中

编译内核的时候就会编译这里,最后会编译出来dtc可执行文件
这个dtc查看文件可以看到是x86-64的,也就是说他是在x86架构上使用的,也就是在虚拟机上使用的

如果编译内核时没有编译出DTC工具

需要修改内核的.config文件,将CONFIG_DTC设置为y

修改了config文件的选项为什么就可以进行编译DTC了呢?

创建设备树文件DTS

编辑一个最简单的DTS文件

如何使用dtc编译器编译dts

1.首先找到DTC编译工具
2.编译dts文件
3.得到dtb文件

4.反编译

相关推荐
木白CPP2 分钟前
Linux DMA驱动详解(二)-----DMA的使用者
java·linux·运维
赵民勇36 分钟前
systemd-socket-activate命令详解
linux·运维
Cx330❀1 小时前
【Linux网络】网络层 IP 协议:从网段划分到内核源码解析
大数据·linux·服务器·网络·tcp/ip·性能优化·langchain
企鹅的蚂蚁1 小时前
LubanCat RK3588 实时 Linux 开发(七):YT6801 PCIe 网卡驱动移植与 vermagic 排查
linux·rk3588·linux驱动·yt6801·pcie网卡·vermagic
DYWorker0011 小时前
Linux驱动子系统:DMA子系统 —— Consumer和Provider(006)
linux·驱动开发
byte轻骑兵1 小时前
【BlueZ】 log 模块:日志系统的实现与自定义日志输出配置
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
探索云原生2 小时前
KubeClipper 1.7.0 发布:Operation 优化与 Kubernetes 1.37 支持
linux·docker·云原生·kubernetes·go
一技安身3 小时前
【信创】docker-26.0.2.tgz 原理 + 完整安装
linux·运维·服务器
程曦曦3 小时前
MySQL 生产库误删 98 张表后的时间点恢复实战:从 binlog 解析到资金对账
linux·数据结构·其他·算法·ubuntu·运维开发
赵民勇3 小时前
systemd-mount命令详解
linux