码迷,mamicode.com
首页 > 其他好文 > 详细

uboot配置过程详解1

时间:2016-03-23 21:41:24      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:

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

$@--目标文件(x210_sd_config)的_config用空格来代替(=(空)),所以第一个变量就变成x210_sd

 

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

 

以下为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

标签:

原文地址:http://www.cnblogs.com/yygsj/p/5312979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!