lv12 uboot源码配置编译 8

发布时间:2023年12月18日

目录

1 uboot源码获取

2 uboot特定

3 uboot源码结构

3.1 平台相关代码 ? ?

3.1.1 arch

3.1.2 board

3.2 平台无关代码

?3.2.1 common下放的都是uboot的命令

3.3 配置文件、帮助文档、示例程序、工具等:

4 uboot配置

5?uboot编译

5.1 编译uboot ?? ?

5.2 清除编译过程中生成的中间文件


1 uboot源码获取

uboot源码下载 ? ?

http://www.denx.de/wiki/U-Boot/ ?

uboot版本命名 ? ?

前期:uboot-1.2.3 ? ?

现在:uboot-2008.01 ?

uboot版本选择 ? ?

支持对应的硬件平台? ? (一般选择与硬件芯片年份差不多的uboot)

相对成熟的版本(资料多)

2 uboot特点

  • 代码结构清晰 ?
  • 支持丰富的处理器与开发板,易于移植 ?
  • 支持丰富的用户命令 ?
  • 支持丰富的网络协议
  • 支持丰富的文件系统
  • 支持丰富的设备驱动 ?
  • 更新活跃、用户较多、资料丰富 ?
  • 开放源代码 ?
  • 较高的稳定性 ?
  • 不具有通用性(不同的处理器、开发板uboot不可通用)

3 uboot源码结构

3.1 平台相关代码 ? ?

即与CPU架构或开发板硬件相关的源码,硬件的改动对应的代码也需要进行修改

  • arch:与CPU架构相关的源代码(arm x86 ...)? ??
  • board:与开发板相关的源代码,包含各种官方评估板对应的源码
  • ...

3.1.1 arch

我们开发板需要的是armv7

3.1.2 board

?不过找不到我们的开发板,不可能把所有公司的开发板都包含,主要是评估板,我们可以在官方评估板origen中修改即可使用,(找官方与4412相关的)

??

3.2 平台无关代码

  • api:?? ?应用接口 ? ?
  • common:?? ?uboot命令源码 ? ?
  • disk:?? ?对磁盘设备的支持 ? ?
  • drivers:?? ?设备驱动源码 ? ?
  • fs:?? ??? ?对文件系统的支持?? ? ? ?
  • include:?? ?头文件 ? ?
  • lib:?? ?库 ? ?
  • net:?? ?对网络协议的支持 ? ?
  • post:?? ?上电自检程序 ? ?
  • ... ...

?

?3.2.1 common下放的都是uboot的命令

3.3 配置文件、帮助文档、示例程序、工具等:

  • README:?? ?说明文档 ? ?
  • doc:?? ?帮助文档 ? ?
  • Makefile:?? ?编译管理 ? ?
  • CREDITS:?? ?开发者 ? ?
  • COPYING:?? ?版权 ? ?
  • examples:?? ?示例程序 ? ?
  • tools:?? ?工具 ? ? ... ...

前期只需要了解结构会用,并不需要去会写uboot

4 uboot配置

指定当前使用的硬件平台

make <board_name>_config?

? ? 注1:<board_name>为当前使用的开发板的名字
?? ?注2:执行该命令的前提是uboot源码支持该开发板
指定编译uboot源码使用的编译器
?? ?在uboot源码顶层目录下的Makefile中指定(CROSS_COMPILE变量)

示例

5?uboot编译

5.1 编译uboot ?? ?

make ?? ?

注1:该命令必须在uboot源码的顶层目录下执行 ?? ?

注2:该命令执行后在uboot源码顶层目录下生成u-boot.bin

示例:

注意一定要是顶层的makefile编辑

选择编译器

?让条件成立

执行make(只编译与origin相关的代码)

?

5.2 清除编译过程中生成的中间文件

make clean ?? ?

make distclean ?? ? //删除所有

注1:该命令必须在uboot源码的顶层目录下执行

可以删除生成的.o的中间文件删除,但是最终u-boot不会删除

6 练习

uboot特点?

文章来源:https://blog.csdn.net/m0_60718520/article/details/135033880
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。