uboot 配置 编译 连接全过程3.docVIP

  • 7
  • 0
  • 约1.91万字
  • 约 32页
  • 2018-08-22 发布于江苏
  • 举报
uboot 配置 编译 连接全过程3

HYPERLINK /linux_xiaomugua/article/details/6970062 uboot 配置 编译 连接全过程 分类: HYPERLINK /Linux_xiaomugua/article/category/931918 Uboot 2011-11-14 20:48 415人阅读 HYPERLINK /linux_xiaomugua/article/details/6970062 \l comments#comments 评论(1) HYPERLINK javascript:void(0); \o 收藏 收藏 HYPERLINK /linux_xiaomugua/article/details/6970062 \l report#report \o 举报 举报 ? ?根据README中 Porting Guide 的指示精神,我们要在新板子上移植UBoot,最快速的办法就是查看当前UBoot代码中是否有对相似于待移植板子的其他板子的支持(这应该又是一个可考虑成为习惯甚至本能的做法。也即拿到不熟悉的软件包后,看看里面有没有自己熟悉的、或者和自己目前要做的东西很相似的部分,从这个部分入手往往能很快的解决问题)。很幸运,我们在里面找到了三星公司所生产的SMDK2410参考板,这是三星公司早先为推销其生产的ARM9芯片-S3C2410所推出的一块PCB参考设计板(推出时随板子附加了很多的软硬件资料)。知道这个后,我们很高兴,因为我们知道我们板子上的CPU——S3C2440正是S3C2410的升级版。所以,在真正动手移植之前,分析一下新版本UBoot中如何支持SMDK2410的,自然成为接下来要做的事情。 UBoot本身是用GNU工具链开发的,那这就意味着其代码包里面必然会有很多的Makefile文件,因为GNU Make正是用来管理软件项目编译的GNU工具。而且,正如我们前面说的,UBoot能支持如此多的CPU体系结构和操作系统,那它就必定会有很多的配置选项用于配置。所以分析支持SMDK2410参考板的具体代码之前,我们必须先弄懂UBoot的配置编译过程。我们只有对此了然于胸了,才能比较顺利的完成移植。所幸的是,不像Linux内核代码,UBoot的代码量并不多,分析起来并不痛苦。 作为UBoot学习移植系列的第一篇文章,我在这里就以SMDK2410板子的支持作为例子,分析新版本UBoot(2010.06)的配置编译过程。作为前提,你应该知道一些GNU Make以及一些Bash Shell Script的知识。 从UBOOT用户的角度来讲,其编译配置过程倒是非常的简单,只需要在命令行中切换到UBoot目录下输入两个命令: [csicong@juliantec u-boot-2010.06]$ make ARCH=arm CROSS_COMPILE=arm-linux- smdk2410_config [csicong@juliantec u-boot-2010.06]$ make ARCH=arm CROSS_COMPILE=arm-linux- 第一个命令完成UBoot for smdk2410参考板的配置,第二个命令则真正编译出所需要的 UBoot 二进制映像文件,编译出来之后我们需要将其下载到FLASH中。在这两个命令中,参数ARCH表示我们要给具有何种体系结构的CPU编译UBoot,因为不管SMDK2410参考板上的CPU——S3C2410,还是我手头板子上的CPU,皆为ARM9芯片,所以这里显然应该为arm;CROSS_COMPILE为交叉编译工具链各工具的名称前缀。我们需要用到arm-linux-gcc作为编译器、arm-linux-ld为链接器。。。所以这里取值为 arm-linux- 。 在第一个命令中,我们以 smdk2410_config 作为本次 make 的目标。查找UBoot项目顶层 Makefile 得到关于此目标的规则如下: smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0 根据 Makefile 规则的定义,GNU Make在处理这条规则的时候,先判断其依赖——也就是 unconfig 是否需要更新。而我们在同一Makefile中找到 unconfig 的规则为(482行): unconfig: ??? @rm -f $(obj)include/config.h $(obj)include/config.mk\ ?? ?$(obj)board/*/config.tmp$(obj)board/*/*/c

文档评论(0)

1亿VIP精品文档

相关文档