dts 编译过程_多dts文件支持方法、编译装置及嵌入式设备与流程

本发明涉及嵌入式领域,尤其涉及一种多dts文件支持方法、编译装置及嵌入式设备。

背景技术:

随着嵌入式设备种类的不断增加,Linux操作系统中出现了大量冗余的板级硬件描述编码,为了便于管理,Linux引入了采用dts(英文全称:device tree source,中文全称:设备树源)文件和dtb(英文全称:device tree binary,设备树二进制)文件来描述的设备树(英文全称:device tree)架构。dts文件是便于人类阅读和理解的源文件,dtb文件是dts文件被DTC(英文全称:device tree compiler,中文全称:设备树编译器)编译后形成的二进制格式文件,可以被Linux内核解析。

uboot(英文全称:universal boot loader,中文全称:通用引导加载程序)是一种典型的用于引导Linux内核启动的系统引导程序。在启动过程中,uboot需要将dtb文件传递给Linux内核。目前,uboot对dtb文件的支持主要有两种方案,一种是将dtb文件存放在文件系统中,该方案由于dtb文件与uboot是分离的,容易出现uboot与dtb文件不匹配的情况;另一种方案是在编译阶段将dtb文件合并到uboot的bin(英文全称:binary,中文名称:二进制)文件尾部,当uboot启动后再将dtb文件重定位到内存中,但是该方案的一个uboot只能支持一个dtb文件,为版本管理带来不便,例如,针对每款设备对应的dtb文件都需要生成相应版本的uboot,另外,对于硬件相同,只是部分硬件未焊接外部芯片的设备,切换版本时需要重新烧写uboot和dtb文件。

技术实现要素:

本发明的实施例提供一种多dts文件支持方法、编译装置及嵌入式设备,用于解决单个uboot只支持一个dtb文件造成的版本管理不便的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供了一种多dts文件支持方法,该方法包括:

获取N个设备树源dts文件,其中,每个dts文件分别对应一个设备型号;

分别对所述N个dts文件进行编译生成N个设备树二进制dtb文件,其中,每个dts文件被编译为一个dtb文件;

创建汇编文件;

将所述N个dtb文件添加到所述汇编文件中;

对所述汇编文件进行编译生成dtb目标文件;

将所述dtb目标文件与通用引导加载程序uboot源码编译生成uboot的二进制bin文件,其中,所述uboot的bin文件用于加载至嵌入式设备的内存后,所述嵌入式设备根据当前设备型号从内存中获取对应的dtb文件并传递给Linux内核。

第二方面,提供了一种编译装置,该装置包括:

获取单元,用于获取N个设备树源dts文件,其中,每个dts文件分别对应一个设备型号;

编译单元,用于分别对所述N个dts文件进行编译生成N个设备树二进制dtb文件,其中,每个dts文件被编译为一个dtb文件;

创建单元,用于创建汇编文件;

添加单元,用于将所述N个dtb文件添加到所述汇编文件中;

所述编译单元,还用于对所述汇编文件进行编译生成dtb目标文件;

所述编译单元,还用于将所述dtb目标文件与通用引导加载程序uboot源码编译生成uboot的二进制bin文件,其中,所述uboot的bin文件用于加载至嵌入式设备的内存运行后,所述嵌入式设备根据当前设备型号从内存中获取对应的dtb文件并传递给Linux内核。

第三方面,提供了一

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值