u-boot配置和编译过程详解

本文详细介绍了如何编译u-boot,包括清除上次配置、开始配置操作、使用mkconfig文件创建软连接、生成config.mk和config.h,以及主Makefile中的版本控制、静默编译、指定目录编译等步骤。重点解析了mkconfig脚本的功能和主Makefile中的关键配置。
摘要由CSDN通过智能技术生成

备注:分析的是OK210开发板自带的uboot_smdkv210,可能有些部分和其他版本不太一样,但是原理都类似。

编译u-boot的步骤

make forlinx_linux_config
make

首先生成配置文件,然后编译源码,依次看看这些命令都干了些什么事情

配置过程

#forlinx add
forlinx_linux_config :  unconfig
    @$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110 linux
    @echo "TEXT_BASE = 0xcc800000" > $(obj)board/samsung/smdkc110/config.mk

清除上一次配置的文件

此目标依赖unconfig目标,因此先调用unconfig的命令,命令如下

unconfig:
    @rm -f $(obj)include/config.h $(obj)include/config.mk \
        $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
        $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep \
        $(obj)board/$(VENDOR)/$(BOARD)/config.mk

执行的操作主要是删除上一次配置生成的配置文件。

开始配置操作

在Makefile中以@开头的命令表示,在命令执行的时候不在终端上打印信息。
$(MKCONFIG)变量在Makefile的101行有定义,如下:

MKCONFIG    := $(SRCTREE)/mkconfig
export MKCONFIG

$(@:_config=)这句话的意思是将 forlinx_linux_config的_config用空白代替只剩下forlinx_linux,
其中$(srcfiles:xxx=ccc)是Makefile的规则,用等号后边的ccc替代srcfiles中等号前边的xxx,
$(@) = $@ 代表目标,即在命令行输入的make forlinx_linux_config中的forlinx_linux_config。
因此@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110 linux
的意思就是调用u-boot根目录的mkconfig脚本并将 forlinx_linux arm s5pc11x smdkc110 samsung s5pc110 linux作为参数传递给脚本。

mkconfig文件

在文件的头部的注释已经交代了文件的作用和调用的格式

# Script to create header files and links to configure
# U-Boot for a specific board.
#
# Parameters:  Target  Architecture  CPU  Board [VENDOR] [SOC]
#

$0 = mkconfig (脚本文件名)
$1 = Target (目标) forlinx_linux   
$2 = Architecture  (架构) arm 
$3 = CPU   (CPU型号)s5pc11x 
$4 = Board  (开发板名)smdkc110 
$5 = VENDOR (生产商)samsung 
$6 = SOC (芯片名)s5pc110 

最后一个linux是OK210的工程师自己添加的用于区别android版本的内核和linux的内核,没有什么实质用途。(个人猜测)

APPEND=no   # Default: Create new config file
BOARD_NAME=""   # Name to print in make output

while [ $#
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值