嵌入式linux之Uboot和系统移植--主Makefile分析

2.uboot和系统移植-4部分-2.4.uboot配置和编译过程详解》

(朱老师物联网大讲堂笔记)

第一部分、章节目录

1.ubootMakefile分析1

2.ubootMakefile分析2

3.ubootMakefile分析3

4.ubootMakefile分析4

5.ubootMakefile分析5

6.ubootMakefile分析6

7.uboot配置过程详解1

8.uboot配置过程详解2

9.uboot的链接脚本

 

1.ubootMakefile分析1

1.1uboot version确定(Makefile24-29行)

Makefile代码部分:

VERSION = 1
PATCHLEVEL = 30 
SUBLEVEL = 4
EXTRAVERSION = 
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = $(obj)include/version_autogenerated.h

1uboot的版本号分3个级别:

VERSION:主板本号

PATCHLEVEL:次版本号

SUBLEVEL:再次版本号

EXTRAVERSION:另外附加的版本信息

4个用.分隔开共同构成了最终的版本号U_BOOT_VERSION ,这个变量记录了Makefile中配置的版本号。

2include/version_autogenerated.h文件是编译过程中自动生成的一个文件,所以源目录中没有,但是编译过后的uboot中就有了。它里面的内容是一个宏定义,宏定义的值内容就是我们在Makefile中配置的uboot的版本号。

1.2HOSTARCHHOSTOS

Makefile代码部分:
HOSTARCH := $(shell uname -m | \
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/)
 
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
    sed -e 's/\(cygwin\).*/cygwin/')
注:sed的替换功能
test = abcdefgabc
Test1 = $(test) | sed -e s/abc/123/
Test2 = $(test) | sed -e s/abc/123/g
@echo $(Test1 )
@echo $(Test2 )
结果:
123defabc
123def123


abc被替换成了123,如果不加字母g,结果就变成了只有第一个abc被替换

 

1、HOSTARCH这个名字:HOST是主机,就是当前在做开发用的这台电脑就叫主机;ARCHarchitecture(架构)的缩写,表示CPU的架构。所以HOSTARCH就表示主机的CPU的架构。

2、直接在shell中执行uname -m得到i686,得到的值其实你当前执行这个命令的电脑的CPU的版本号

3shell中的|叫做管道管道的作用就是把管道前面一个运算式的输出作为后面一个的输入再去做处理,最终的输出才是我们整个式子的输出

4、这两个环境变量是主机的操作系统主机的CPU架构,得出后保存备用,后面自然会用到。

 

2.ubootMakefile分析2

2.1、静默编译(50-54行)

Makefile代码部分:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值