188|2

223

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

【正点原子i.MX93开发板】测评 + 七、设备树文件编译和更新 [复制链接]

本帖最后由 御坂10032号 于 2025-3-21 01:44 编辑

简介

 

在Linux开发中, 可能一个SOC会被不用的厂商所使用, 而不同的厂商会用相同的SOC来构建自己的开发板。 设备树文件是为了描述当前开发板的具体的资源信息。 类似其他开发板厂商提供的BSP(Board support package 板级支持包), 我们可以使用厂商提供的BSP来快速的实现对应的功能。 在Linux开发中也是类似的操作。在早期的Linux 开发中,所有的设备树文件都被提交到了Linux内核中。所有的厂商都按照自己的BSP来提交对应的类设备树文件到Linux源码中,造成了大量的冗余代码。 因此在Linux的版本更新之后,Linux内核应该只负责系统方向的调度信息等。 而不是应该将类设备树文件糅杂在一起。 因此设备树诞生了,设备树通常被用来描述板载器件功能的描述信息。

 

  板级支持的描述部分

 

在设备树诞生后, 部分的Linux内核部分类BSP部分相关的描述文件被从内核中抽离了出来。如下图所示

 ~/file/linux-6.1.55-v1.0/arch/arm64/boot/dts/freescale 路径下的设备树文件

 

其中设备树文件后缀为DTS, 而编译后的设备树文件为DTB, 将DTS编译成DTB的工具是DTC。

 

通常设备树文件都存在设备树的基树, 其余的衍生设备树都需要继承于这棵基树进行编写。这块IMX93的设备树的基树是: imx93-11x11-atk.dtb 同样位于上文的~/file/linux-6.1.55-v1.0/arch/arm64/boot/dts/freescale 目录下。

 

其他的一些设备树有

  1. imx93-11x11-atk-mipi-dsi-5.5-720x1280.dtb
  2. imx93-11x11-atk-mipi-dsi-5.5-1080x1920.dtb
  3. imx93-11x11-atk-mipi-dsi-10.1-800x1280.dtb
  4. imx93-11x11-atk-lvds-10.1-1280x800.dtb

这些树分别是控制DSI显示5.5寸 720* 1280的设备树和5.5寸 1080 * 1920的设备树、10.1寸 800* 1280的设备树 和 LVDS屏幕10.1寸的1280* 800的设备树, 上述的设备树都依赖于基树。

 

 

上图为IM93的设备树基树文件

 

如果我们按照官方文档来编译设备树的话如下所示

  其编译设备树之前我们需要先初始化当前的环境变量。

  接着来初始化默认的编译配置

  不过这里官方没有介绍的一点是:make 的这个命令实际上是应用了 linux目录下的/arch/arm64/configs/imx_v8_defconfig 如下图所示

  接下来我们执行命令来编译设备树的基树

  • make freescale/imx93-11x11-atk.dtb

  如上图所示记录了一次对设备树基树的编译过程, 其中编译后的设备树的生成目录为arch/arm64/boot/dts/freescale/ 。 可以从上文观察到,第一次编译的时候并没有被DTC编译, 这是因为在对应的设备树文件夹内已经存在了一个设备树的编译文件(DTB), 所以我们使用命令把它删除掉之后,我们才可以重新来编译一个新的设备树。如果对原本的设备树文件进行了变更, 那么并不需要删除原有的设备树。对应的DTB文件会自动更新。

 

接着我们使用SSH连接到开发板,来查找开发板的设备树文件

  从上图中我们可以看到对应的设备树文件在/run/media/mmcblk0p1目录下。

 

我们首先对原本的设备树文件进行备份,然后使用FTP工具对原本的设备树进行覆盖

  接着重启开发板,此时便完成了设备树的更新!

 

此帖出自Linux开发论坛

最新回复

如果对原本的设备树文件进行了变更, 那么并不需要删除原有的设备树。对应的DTB文件会自动更新。 这个是技巧   详情 回复 发表于 昨天 07:28
点赞 关注(1)

回复
举报

7007

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

如果对原本的设备树文件进行了变更, 那么并不需要删除原有的设备树。对应的DTB文件会自动更新。

这个是技巧

此帖出自Linux开发论坛

点评

是的会覆盖掉  详情 回复 发表于 昨天 13:16
 
 

回复

223

帖子

4

TA的资源

纯净的硅(初级)

板凳
 
Jacktang 发表于 2025-3-21 07:28 如果对原本的设备树文件进行了变更, 那么并不需要删除原有的设备树。对应的DTB文件会自动更新。 这个是 ...

是的会覆盖掉

此帖出自Linux开发论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 12

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表