uboot移植一:总体浏览

一、简介

    硬件平台:开发板的SoC是三星公司的S5PV210,属于210系列开发板。

    uboot:选择uboot官方u-boot-2013.10版本进行移植。

在uboot的board/samsung文件夹中选择与210相近的开发板作为模板进行移植,这里选择的是goni文件,该开发板对应的头文件是include/configs文件夹中的s5p_goni.h。

二、uboot的配置

%_config:: unconfig

@$(MKCONFIG) -A $(@:_config=)

uboot编译之前要进行配置。配置时执行make %_config。这里的%是通配符,根据第三部分的介绍可以知道在配置时这里的%具体用什么来代替。配置实际上是执行mkconfig脚本,脚本传参两个,$1 = -A;$2 = %(通配符)。

三、uboot中配置脚本(mkconfig)介绍

if [ \( $# -eq 2 \) -a \( "$1" = "-A" \) ] ; then

# Automatic mode
line=`awk '($0 !~ /^#/ && $7 ~ /^'"$2"'$/) { print $1, $2, $3, $4, $5, $6, $7, $8 }' boards.cfg`
if [ -z "$line" ] ; then
echo "make: *** No rule to make target \`$2_config'.  Stop." >&2
exit 1
fi
set ${line}
# add default board name if needed
[ $# = 3 ] && set ${line} ${1}

fi

上面这段代码采用正则表达式从boards.cfg配置文件中提取域7与$2相等的那一行赋值给line。

awk读取boards.cfg文件,一次一行;$0 !~ /^#/读取的这一行不以#号开头,即没有被注释掉,$0表示所有的域,!~表示不匹配;$7 ~ /^'"$2"'$/表示域7与第二个位置参数匹配;print $1, $2, $3, $4, $5, $6, $7, $8条件满足则打印这一行。

查看boards.cfg文件后可以发现比较合适的一行是:

Active  arm         armv7          s5pc1xx     samsung         goni                s5p_goni                             - 

set ${line}后改变位置参数:

$# = 8

$1  = Active  

$2 = arm

$3 = armv7          

$4 = s5pc1xx     

$5 = samsung         

$6 = goni                

$7 = s5p_goni

$8 = - 

从这里可以印证我们在配置时执行的make %_config中的%是s5p_goni。因为是域7进行匹配。直接执行make s5p_goni_config。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值