免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1467 | 回复: 0
打印 上一主题 下一主题

Uboot 编译过程(小寿转载) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-28 09:22 |只看该作者 |倒序浏览

现在介绍一下u-boot的编译过程,这里用的uboot版本是U-Boot 2008.10,硬件用smdk2410,这个板子用得比较普遍,uboot已经有对其的支持。通过我们对编译过程和代码的了解,我们也容易用uboot支持我们自己需要的硬件。
编译命令非常简单:
    make smdk2410_config (生成配置)
    make all  (生成最终文件)
当然,更好的做法是把编译出的文件生成到另外一个目录,并make clean如:
    export BUILD_DIR=../tmp
    make distclean
    make smdk2410_config
    make all
现在,我们可以来看看Makefile,u-boot的Makefile文件非常大。但是,其结构却并不复杂。
u-boot已经支持了很多硬件,前半部分是共用部分,编译出最终的uboot可执行文件。
而后半部分,是为各种不同的硬件进行配置,每种硬件有一个目标,每个的做法都非常类似,我们用到的是:
smdk2410_config    :    unconfig
    @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
/*****************************************************************
$(@:_config=) 分为两部分
一是 $@ 取得的目标文件,即 smdk2410_config
二是 $(@:_config=) 中进行了替换,将 _config 替换为空,即删除

****************************************************************/
这里的 MKCONFIG    := $(SRCTREE)/mkconfig
实际上是调用脚本mkconfig,而这个脚本做的工作简单如下:
建立config.mk文件
    echo "ARCH   = $2" >  config.mk
    echo "CPU    = $3" >> config.mk
    echo "BOARD  = $4" >> config.mk
    echo "VENDOR = $5" >> config.mk
    echo "SOC    = $6" >> config.mk
建立config.h
    echo "#include " >>config.h
   
在这里$1-$6的值分别是:smdk2410 arm arm920t smdk2410 NULL s3c24x0
而执行了 make smdk2410_config 之后,就生成了相应的config.mk,config.h两个文件。
在config.mk文件中,定义了相应硬件信息 : ARCH CPU BOARD VENDOR SOC
在config.h文件中,包含了相应硬件的头文件smdk2410.h ,位于include\configs目录下。
如果新建自己的硬件项目,那么也需要建立相应的头文件在这个地方。
这样,uboot的配置已经生成,下一次介绍make all的过程。
接着
上次
,这次介绍make all的过程。
首先,介绍一下生成的config.mk 和 config.h如何使用,得到正确配置的。
config.mk直接被include到Makefile来,并使用其定义如下:
    include $(obj)include/config.mk
    export    ARCH CPU BOARD VENDOR SOC
这样可以直接选择需要编译的模块,例如:
    LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
    LIBS += lib_$(ARCH)/lib$(ARCH).a
    LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a
config.h被include/common.h所包含,而它有包含了相应硬件的头文件。
    common.h


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55630/showart_2162788.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP