Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3115025
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: 嵌入式

2014-04-19 15:22:15

原文地址:http://blog.csdn.net/xieweihua2012/article/details/8252423

uboot系列的版本是uboot-2010.12,基于samsung4412芯片

Uboot里面的字母u代表了“通用”的意思,因此,为了编译出符合特定CPU,特定电路板的启动代码,就必须首先进行配置,告诉编译器需要编译成什么样的体系架构,什么样的cpu等等。

下面以4412为例,讲述配置过程

配置命令为make  smdk4412_config,我们来看这条命令是如何执行的。

首先进入到顶层Makefile文件,找到伪目标%_config

%_config::        unconfig

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

Makefile112行有定义如下:

MKCONFIG       := $(SRCTREE)/mkconfig此处$(SRCTREE)为空

-A是参数

$(@:_config=)表示把make   xxx_config 命令里面的_config去掉,保留xxx

 

所以@$(MKCONFIG) –A $(@:_config=) 分解出来就是 mkconfig –A smdk4412,它的意思就是进入当前目录下的mkconfig文件并且传递两个参数(-A smkd4412)给它。

下面进入到mkconfig文件,看它做了写什么事情:

在文件的开头有如下语句

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

                  # Automatic mode

                  line=`egrep -i "^[[:space:]]*${2}[[:space:]]" boards.cfg` || {

                            echo "make: *** No rule to make target \`$2_config'.  Stop." >&2

                  exit 1

         }

如果参数的个数为两个,并且第一个参数为-A就执行then后面的语句,根据命令所提供的参数,我们知道所提供的参数符合这个if语句,then语句的意思就是从boards.cfg文件中寻找第二个参数(此处为smdk4412),如果没有找到,就显示make: *** No rule to make target smdk4412_config  如果有,程序就继续往下执行(此篇文章不接着往下讨论mkconfig的其他内容,下一篇将做详细的分析)。

接着进入boards.cfg文件,在里面可以找到smdk4412标号,可见配置成功!

smdk4412     arm         armv7       smdk4212            samsung        exynos

 

 

 

总结:以上只是对配置的流程做了个大概的分析,详细的配置过程见下一篇文章

阅读(1225) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~