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配置和编译过程详解