u-boot的源码是通过GCC (arm-linux-gcc) 和 Makefile 组织编译的,顶层目录下的Makefile首先可以设置板子的定义,然后递归地调用各级目录下的Makefile,最后把编译过的程序链接成u-boot的映像。
顶层目录下的Makefile,它是负责U-Boot整体配置编译。每一种开发板在Makefile都需要有板子配置的定义,如smdk2442定义如下:
smdk2442_config: unconfig
@./mkconfig $(@:_config=) arm arm920t smdk2442
执行配置U-Boot的命令 make smdk2442_config (UBOOT没有想VIVI那样的图像配置界面,通过make mnuconfig 命令来实现),通过 ./mkconfig 脚本生成 include/config.mk 的配置文件。文件内容是根据Makefile对板子的配置生成的。
配置环境和编译过程如下所述,U-boot的编译环境配置需要: cross-2.95.3.tar.bz2(UBOOT的交叉编译器)和s3c24x0_uboot_rel_0_0_1_061002.tar.bz2(UBOOT的源码)。
1、将交叉编译器解压到 /usr/local/arm目录下,然后修改环境变量
2、将UBOOT的源码拷贝到 /home/lhl 这个目录下,通过命令解压到当前文件夹。
接下来就是加载配置:这部分是UBOOT一直的主要工作。比如说可以向UBOOT中加入USB下载驱动、网卡驱动和串口下载驱动等。这些配置都是用户根据自己的需要来进行配置的
最后进行编译:make all ,最终在s3c24x0_uboot-dev(???)目录下生成u-boot、u-boot.bin、u-boot.map、2 u-boot.srec(???)四(???)个文件。其中 u-boot.bin 就是要下载到开发板的二进制映像文件。
发表评论 评论 (1 个评论)