2.4.U-Boot配置和编译过程详解-U-Boot和系统移植第4部分视频课程笔记

本文详细介绍了U-Boot的主Makefile分析,包括版本信息设定、编译配置过程、链接脚本的定义以及如何指定链接地址。通过静默编译、原地编译和单独输出文件夹编译方法,深入探讨了UBOOT的编译管理。此外,文章还讲解了配置过程中的mkconfig脚本、符号链接创建以及include/config.mk文件的生成,强调了配置文件在移植性和编译过程中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2、uboot 主Makefile分析

在这里插入图片描述
VERSION=主版本号
PATCHLEVER= 次版本号
SUBLEVEL=再版本号
EXTRAVERSION = 自己定义的版本号
U_BOOT_VERSION =最终版本号 “1.3.4xyz”
VERSION_FILE = $(obj)include/version_autogenerated.h(编译自动生成的文件)里面就是生成了一个宏,记录了上面我们配置的版本号,如下:
在这里插入图片描述
在这里插入图片描述
验证:修改Makfile的版本信息,再编译下载到SD卡中启动中看uboot中的版本信息是否一致。

在这里插入图片描述
直接执行:在shell中可以在Makefile中使用:shell uname -m 或者uname -m 得到当前执行这个命令的电脑的CPU版本号
在这里插入图片描述
== “ | ” 就是管道,也就是前面运算式的结果就是后面运算式的输入==
HOSTARCH := $(shell uname -m | \ 如前面运算式输出是i686 后面运算被匹配/ i.86/i386 "."被替换为3,最终的i386,如果第一行没有匹配则往后匹配。
sed -e s/i.86/i386/ \
-e s/sun4u/sparc64/
-e s/arm.*/arm/
-e s/sa110/arm/
-e s/powerpc/ppc/
-e s/ppc64/ppc/
-e s/macppc/ppc/)

HOSTARCH名字:HOST就是主机,当前做开发的这台电脑。
ARCH:achitecture 架构,HOSTARCH就是主机架构

HOSTOS := $(shell uname -s | tr ‘[:upper:]’ ‘[:lower:]’ | \ (前面的结果转成小写) 如:Linux 转为linux->赋值HOSTOS
sed -e ‘s/(cygwin).*/cygwin/’)
在这里插入图片描述
HOSTOS 转为小写 linux
测试:
在这里插入图片描述

2.1、Makefile 分析2

在这里插入图片描述
不打印Makefile的调试信息,叫做静默编译 make -s 为静默编译
在这里插入图片描述

2、编译方法(原地编译和单独输出文件夹编译)
(1)编译复杂项目,Makefile提供了2种编译管理方法,默认情况下是当前文件夹中的.C文件,编译出来的.o文件会放在.c文件中,叫做原地编译。
(2)原地编译有一些坏处,一:污染了源文件目录,二是缺陷就是一套源代码只能按照一种配置和编译方法进行处理,无法同时维护2个或者2个以上的配置编译方式。
(3)为了解决以上的缺陷,uboot支持单独输出文件夹方式的编译(linux kernel也支持,uboot也是在kernel中学习的)思路是编译时另外指定一个输出目录,编译的所以.o文件或生产的其

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值