walnutcy

【原创】为zynq7000编译u-boot

0
阅读(3578)

手头还没ZYNQ7000的板子,先把固件开发的环境等弄起来吧,该博文首发于个人主站:http://gnssinfo.com

为zynq7000编译u-boot

在上一篇文章中,我们安装了GNU编译器,这里笔者开始编译u-boot,由于官网已提供代码,所以是非常简单的。
废话少说,步骤如下:

1〉 下载u-boot代码,git.xilinx.com上推荐使用git下载u-boot-xarm.git工程,
命令为:git clone git://git.xilinx.com/u-boot-xarm.git
由于网络问题,这里笔者推荐下载镜像snapshot,笔者下载的为version 14.3的build2;
2> 解压到工作目录;
gnssinfo@zynq7k:~/prj/uboot$ tar xzf u-boot-xarm-xilinx-v14.3-build2-20120917.tar.gz
cd u-boot-xarm
3〉 修改CROSS_COMPILE,改为笔者之前装的版本,在Makefile中添加两行代码,更改后如下:

4> make zynq_zc70x_config
make
5〉编译完成,最后几行提示如下:
arm-xilinx-linux-gnueabi-ld -r -o libstubs.o stubs.o
arm-xilinx-linux-gnueabi-ld -g -Ttext 0xc100000 \
-o hello_world -e hello_world hello_world.o libstubs.o \
-L/opt/xilinx_codesourcery_lite/bin/../lib/gcc/arm-xilinx-linux-gnueabi/4.6.1 -lgcc
arm-xilinx-linux-gnueabi-objcopy -O srec hello_world hello_world.srec 2>/dev/null
arm-xilinx-linux-gnueabi-objcopy -O binary hello_world hello_world.bin 2>/dev/null
make[1]: Leaving directory `/home/gnssinfo/prj/uboot/u-boot-xarm/examples/standalone’
make -C examples/api all
make[1]: Entering directory `/home/gnssinfo/prj/uboot/u-boot-xarm/examples/api’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/home/gnssinfo/prj/uboot/u-boot-xarm/examples/api’
6〉查看下我们得到的u-boot固件,如下:
gnssinfo@zynq7k:~/prj/uboot/u-boot-xarm$ ls -l u-boot*
-rwxrwxr-x 1 gnssinfo gnssinfo 850632 Nov 1 17:13 u-boot
-rw-rw-r– 1 gnssinfo gnssinfo 215568 Nov 1 17:13 u-boot.bin
-rw-rw-r– 1 gnssinfo gnssinfo 923 Nov 1 17:13 u-boot.lds
-rw-rw-r– 1 gnssinfo gnssinfo 81905 Nov 1 17:13 u-boot.map
-rw-rw-r– 1 gnssinfo gnssinfo 646780 Nov 1 17:13 u-boot.srec
其中:u-boot为ELF格式固件,
u-boot.bin为Binary固件。