uboot配置过程详解1

Posted 又一个暑假

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uboot配置过程详解1相关的知识,希望对你有一定的参考价值。

x210_sd_config :    unconfig
    @$(MKCONFIG) $(@:_config=) arm s5pc11x x210 samsung s5pc110
    @echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/x210/config.mk

[email protected]目标文件(x210_sd_config)的_config用空格来代替(=(空)),所以第一个变量就变成x210_sd

 

Makefile有三个非常有用的变量。分别是[email protected],$^,$<代表的意义分别是:
[email protected]目标文件,$^--所有的依赖文件,$<--第一个依赖文件。

 

以下为mkconfig的源码解释

APPEND=no	# Default: Create new config file进来先定义2个变量 
BOARD_NAME="" # Name to print in make output while [ $# -gt 0 ] ; do case "$1" in --) shift ; break ;; -a) shift ; APPEND=yes ;; -n) shift ; BOARD_NAME="${1%%_config}" ; shift ;; *) break ;; esac done

  

// $#这里等于6 因为调用config这个配置的时候传了6个参数分别为$1= x210_sd、$2=arm、$3=s5pc11x、$4=x210、$5=samsumg、$6=s5pc110、

  $1(x210_sd)传进去用switch语句来判断是哪个case,在脚本里case 是会自动跳出的,如果加了break表示跳出while循环,且*表示任何情况。

 

 

[ "${BOARD_NAME}" ] || BOARD_NAME="$1"

  可以理解为简列的if语句,如果${BOARD_NAME}成立BOARD_NAME=“$1"就不执行,则反。其实就是看BOARD_NAME变量是否有值,如果有值就维持不变;如果无值就给他赋值为$1,实际分析结果:BOARD_NAME=x210_sd,前面刚开始定义变量就已经赋空了(BOARD_NAME="")。

 

[ $# -lt 4 ] && exit 1     //if($#<4)  return 1
[ $# -gt 6 ] && exit 1    //if($#>6)  return 1

echo "Configuring for ${BOARD_NAME} board..."

  传参的时候只能4、5、6个参数

以上是关于uboot配置过程详解1的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式linux核心课程 2.uboot和系统移植-第4部分-2.4.uboot配置和编译过程详解

2.4uboot配置和编译过程详解

uboot配置和编译过程详解

uboot主Makefile分析(t配置和编译过程详解)

海思芯片(hi3516dv300)uboot镜像生成过程详解

uboot中环境变量的加载写入过程详解