U-boot移植之一:分析Makefile

 

学习UBOOT首先得学习Mafefile,推荐一篇文章《跟我一起写写Makefile》。

uboot 的makefile分主目录中的主makefile和各级目录中的子Makefile,移植Uboot,得理解主makefile以及其整体架构。

 

主makefile主要干两件事:

1:配置适合特定平台的各种参数和文件

2:制定make规则,生成uboot.bin

关于对makefile的分析,主要参考:

u-bootMakefile分析

http://blog.csdn.net/chongchongliu/archive/2008/11/02/3207360.aspx

http://liaowb1234.blog.163.com/blog/static/77155547201001284114270/

 

以下贴第一个连接的原文部分内容

 

UBOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为 ppc_6xx-UBOOT的下载地址: http://sourceforge.net/projects/u-boot
我下载的是1.1.5版本

要了解一个LINUX工程的结构必须看懂Makefile,尤其是顶层的,没办法,UNIX世界就是这么无奈,什么东西都用文档去管理、配置。首先在这方面我是个新手,时间所限只粗浅地看了一些Makefile规则,请各位多多指教。cpci5200为例:

几个重要的文件分析:

u-boot-1.1.5/Makefile

u-boot-1.1.5/mkconfig

u-boot-1.1.5/config.mk

u-boot根目录下的Makefile文件(u-boot-1.1.5/Makefile)它负责配置u-boot的编译方式,具体说来包括:使用何种指令集,需包含哪些接口驱动、库等。Makefile的内容从上到下分别是:分定义编译环境:使用何种编译器、编译方式、目标文件的生成及它们最终镜像中的链接次序等。Mkconfigconfig.mk在接下来的分析中会涉及到。

在编译UBOOT之前,先要执行

# make cpci5200_config

cpci5200_configMakefile的一个目标,定义如下:

cpci5200_config:  unconfig

   @$(MKCONFIG) -a cpci5200  ppc mpc5xxx cpci5200 esd

其中,unconfig定义如下:

unconfig:

       @rm -f $(obj)include/config.h $(obj)include/config.mk /

              $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp

显然,执行# make cpci5200_config时,先执行unconfig目标,注意不指定输出目标时,objsrc变量均为空,unconfig下面的命令清理上一 次执行make *_config时生成的头文件和makefile的包含文件。主要是include/config.h include/config.mk文件。

然后才执行命令

@$(MKCONFIG) -a cpci5200  ppc mpc5xxx cpci5200 esd

$(MKCONFIG)就会被替换成$(SRCTREE)/mkconfig文件路径, MKCONFIG 是顶层目录下的mkcofig脚本文件(u-boot-1.1.5/mkconfig),后面五个是传入的参数。Mkconfig文件的详细分析见文档末尾。

注意一下u-boot对板卡的分类方法:
Target:宿主机平台
Architecture
:定义芯片架构(如MIPSPOWERPCARM等)
CPU
:定义芯片指令集版本(如ARM7ARM9ARM11等)
Board
:芯片厂商,它细分为两类
[VENDOR]
:按厂商划分(如AT9200S3C44B0等)
[SOC]
:按SOC类型(如S3C2440S3C2410等)

1)对于cpci5200_config而言,mkconfig主要做三件事:

include文件夹下建立相应的文件(夹)(符号)连接,

#如果是PPC体系将执行以下操作:
#ln -s     asm-ppc        asm  

#ln -s arch-mpc5xxx    asm-ppc/arch <

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值