1、uboot_versionq确定(Makefile的24-29)
(1)uboot的版本号分为3个
VERSION:主版本号
PATCHLEVEL:次版本号
SUBLEVEL:再次版本号
EXTRAVERSION:另外附加的版本信息
这4个用.分隔开构成了最终的版本号
(2)Makefile中版本号最终生成一个变量U_BOOT_VERSION,这个变量记录了Makefile中配置的版本号。
(3)include/version_autogenerated.h文件时编译过程中自动生成的一个文件,所以在未编译源目录下面找不到这个文件,在编译过后的uboot中就有了。它里面的内容是一个宏定义,宏定义的值就是我们在Makefile中配置的uboot的版本号。
(4)验证方法:自己修改Makefile中几个Version的有关变量,然后重新编译uboot,然后烧录到sd卡,看uboot打印出来的版本信息。看看变化是不是和自己一致。
2、HOSTARCH和HOSTOS
(1)直接在shell中执行uname -m得到i386,得到的值其实是你当前执行这个命令的电脑的CPU的版本号。
(2)shell中的|叫做管道,管道的作用就是把管道前面的运算式的运算输出结果作为管道后面运算式的输入。
(3)sed -e s/old/new/ 命令是如果命令行打印出old则将new替换old。
其中31-38行代码
HOSTARCH := $(shell uname -m |
sed -e s/i.86/i386/ #如果打印的是i.86则替换为i3864
sed -e s/sun4u/sparc64/ #如果打印的是sun4u则替换为sparc64
sed -e s/arm.*/arm/
sed -e s/sa110/arm/
sed -e s/powerpc/ppc/
sed -e s/ppc64/ppc/
sed -e s/macppc/ppc/)
其中41-42行代码
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | #打印出来的大写字母改写为小写字母
sed -e 's/\(cygwin\).*/cygwin/') #打印出的如果是cywin.*则替换为cygwin
(4)HOSHARCH是主机架构的意思,就是表示CPU的架构
(5)HOSTOS主机操作系统的意思