第十一章 U-boot 顶层 Makefile 详解 (设置目标架构、交叉编译器和配置文件)

11.2.9 设置目标架构、交叉编译器和配置文件

        编 译 uboot 的 时 候 需 要 设 置 目 标 板 架 构 和 交 叉 编 译 器
                “ make ARCH=armCROSS_COMPILE=arm-none-linux-gnueabihf-”
        就是用于设置 ARCH 和 CROSS_COMPILE,在顶层 Makefile 中代码如下:

261 # set default to nothing for native builds
262 ifeq ($(HOSTARCH),$(ARCH))
263 CROSS_COMPILE ?=
264 endif
265
266 KCONFIG_CONFIG ?= .config
267 export KCONFIG_CONFIG

        第 262 行判断 HOSTARCH 和 ARCH 这两个变量是否相等,主机架构(变量 HOSTARCH)是x86_64,而我们编译的是 ARM 版本 uboot,肯定不相等。
        所以 CROSS_COMPILE= arm-none-linux-gnueabihf-。从示例代码 11.2.9.1 可以看出,每次编译 uboot 的时候都要在 make 命令后面设置 ARCH 和 CROSS_COMPILE,使用起来很麻烦,可以直接修改顶层 Makefile,在里面加入ARCH 和 CROSS_COMPILE 的定义。
        使用起来很麻烦,可以直接修改顶层 Makefile,在里面加入 ARCH 和 CROSS_COMPILE 的定义,如图 :

        这样就不用每次编译的时候都要在 make 命令后面定义 ARCH 和 CROSS_COMPILE。

        第 266 行定义变量 KCONFIG_CONFIG。
        uboot 是可以配置的,这里设置配置文件为.config,.config 默认是没有的,需要使用命令“make xxx_defconfig”对 uboot 进行配置,配置完成以后就会在 uboot 根目录下生成.config。
        默认情况下.config 和xxx_defconfig 内容是一样的,因为.config 就是从 xxx_defconfig 复制过来的。如果后续自行调整了 uboot 的一些配置参数,那么这些新的配置参数就添加到了.config 中,而不是 xxx_defconfig。相当于 xxx_defconfig 只是一些初始配置,而.config 里面的才是实时有效的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值