移植最新版uboot到44B0板

从官网上下到最新的稳定的u-boo版本为u-boot-2010.09,移植时发现新版程序与网上广为流传的u-boot1.1.1还是有一些差别的,最主要的差别体现在添加新的板子名称的位置,以前之间在顶层目录的Makefile里添加即可,现在统一将板子名称、CPU型号等信息放到了文件boards.cfg中,所以如果要添加自己的开发板转有的驱动,需要首先在borads.cfg中添加相应信息(例如XXX_config)。

例如下面的红色字体部分即为我的开发板的配置信息,它表示在board目录下存在LT/LT44B0目录,此目录下存在与开发板相关的配置文件。

……

B2        arm    s3c44b0        -        dave
LT44B0        arm    s3c44b0        -        LT

……

然后,还需要在include/configs文件夹内存在一个 名为 LT44B0 _config.h的配置文件。这样使用 make XXX_config就可以完成对新添加的板子的配置了,其余部分的操作与旧版很类似,这里不再赘述,推荐阅读:u-boot移植完整版

 

编译u-boot的标准流程是:

make distclean      ——清除以前的配置信息和旧的编译输出文件

make XXX_config  ——配置手中的开发板

make                    ——开始执行编译

 

对了,最新的u-boot需要使用arm-linux-gcc编译器才可以,我使用arm-linux-gcc3.4.5编译通过,但是如果使用旧的arm-elf-gcc编译那么是无法编译通过的,似乎是某些编译选项不支持吧,具体原因我没有深究。在编译之前,首先需要设置两个环境变量,一个是PATH,一个是CROSS_COMPILE。具体操作如下:

1.

PATH=$PATH:/path/to/arm-linux-gcc/bin

上面的命令表示将arm-linux-gcc编译器的bin目录的绝对路径放到环境变量中去,这样在shell里直接输入arm-linux-gcc就可以启动gcc了,而不需要再指定其存储路径,测试路径是否添加成功的方法是输入命令: arm-linux-gcc --version,如果看到版本信息则证明编译器的路径已经添加到环境变量PATH中了,也可以通过echo $PATH命令查看PATH中的具体内容。

2.

CROSS_COMPILE=arm-linux-

export CROSS_COMPILE

上述两个命令向shell环境中输出了一个系统变量 CROSS_COMPILE,这样编译时就会自动选择arm-linux-相关的程序做交叉编译了。

你可能感兴趣的:(移植最新版uboot到44B0板)