当前位置: 首页 > news >正文

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.反编译
在这里插入图片描述第二种编译,编译内核中的设备树
在Linux的kernel目录下执行make dtbs
在这里插入图片描述
可以看到编译dts文件的路径在这里插入图片描述

在VS code中安装Device Tree插件

查找Device Tree插件并安装

http://www.lryc.cn/news/356170.html

相关文章:

  • DQL(数据查询)
  • LeetCode 2951.找出峰值:模拟(遍历)
  • 软考结束。有什么要说的
  • Matlab读取Swarm球谐系数,并绘制EWH全球格网图(存在疑问)
  • Vue集成Iframe
  • Android Studio 所有历史版本下载
  • 5.27作业
  • 微服务架构下的‘黑带’安全大师:Spring Cloud Security全攻略!
  • Py列表(list)
  • 黑马es0-1实现自动补全功能
  • react通过上下文深入传递数据
  • 「代码厨房大揭秘:Python性能优化的烹饪秘籍!」
  • 【重学C语言】十六、联合、枚举、面向对象编程
  • Github2024-05-21 Python开源项目日报 Top10
  • labview_开放协议
  • AWS安全性身份和合规性之Amazon Macie
  • redis数据类型set,zset
  • 央视网视频下载和花屏问题处理
  • 四、通信和网络安全—局域网|广域网|远程连接和攻击技术(CISSP)
  • 15、设计模式之责任链模式
  • 神奇动物在哪里,但导演是微软
  • Flutter 中的 Flow 小部件:全面指南
  • 【pyspark速成专家】11_Spark性能调优方法2
  • 吊顶的做法防踩坑,吊顶怎么省钱还好看
  • 揭秘Tensor Core黑科技:如何让AI计算速度飞跃
  • 为什么会有websocket(由来)
  • 【MySQL精通之路】优化
  • 解读大模型应用的可观测性
  • 嵌入式学习记录5.18(多点通信)
  • shell脚本的基础应用