【BSP开发经验】uboot gpl框架开发经验

本文详细解释了U-Boot的GPL隔离策略,包括其目的、基本原理,以及如何通过链接脚本和hikcmd功能进行适配。文章还介绍了适应新平台的步骤和链接脚本的语法示例,有助于理解和使用U-Boot的GPL隔离机制。

uboot_gpl 隔离 的目的

U-Boot 的 GPL 隔离是指在 U-Boot 中,将 GPL 认为具有侵权风险的代码与非 GPL 代码分隔开来,以避免 GPL 认为有侵权风险的代码“污染”了非 GPL 代码,从而使得整个 U-Boot 项目遵守 GPL 协议,保障代码的版权和使用权。 其主要作用如下:

  1. 保障代码的版权和使用权:U-Boot 作为开源软件,遵守 GPL 协议是其发展的基础,GPL 隔离可以使得 U-Boot 的使用和开发更加便捷和合法,同时也可以避免因 GPL 侵权而影响项目发展。
  2. 提高代码质量:执行 GPL 隔离可以使得开发者更加清晰地了解 U-Boot 中的 GPL 代码和非 GPL 代码,进而提高代码的可读性和可维护性。
  3. 提高代码的灵活性与可移植性:将 GPL 代码和非 GPL 代码分隔开来,有助于减少不同软件项目之间存在的依赖关系,从而增加了 U-Boot 的可移植性和灵活性,使得其更易于在不同的硬件平台和应用场景中使用和定制。

总之,U-Boot 的 GPL 隔离可以有效保障代码的版权和使用权,提高代码的质量和可维护性,增加了代码的灵活性和可移植性,使得整个项目更加健康、可持续发展

uboot_gpl 隔离基本原理

uboot gpl本质上是uboot中的standalone程序,也可以理解为独立的裸机代码。通过修改链接脚本指定代码段最开始的函数,uboot从flash中读入uboot_gpl镜像之后,只需要跳到这个镜像地址的位置,就可以直接运行指定在代码段最开始的函数。

链接脚本示例:

在这里插入图片描述

链接结果:

在这里插入图片描述

拼接方式:

在这里插入图片描述

uboot gpl镜像直接拼接在uboot镜像后面固定地址的位置,中间空出的地方用0x00 或者 0xff进行填充。这样uboot就可以直接算出gpl镜像在flash中的位置。

具体的计算方式可以使用:

uboot的起始偏移+uboot与gpl总镜像大小-gpl镜像大小

uboot_gpl 基本框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与光同程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值