开发板:Zynq7030数据采集板
PC平台:Ubuntu-18.04 + MobaXterm
开发环境:Xilinx Vivado + SDK -18.3
交叉编译工具:arm-linux-gnueabihf-
学习目标:生成 BOOT.bin 文件
一、下载u-boot源码
在第一篇文章Zynq-7000系列之linux开发学习笔记:开发前准备(一)中已经提供过u-boot的下载链接,这里再提供一下,方便中途看本文章的人进行下载,链接如下:
u-boot 2018.3 :https://github.com/Xilinx/u-boot-xlnx/tree/xilinx-v2018.3
下载完u-boot源码后,将文件解压到相应目录,我这里还是解压到前几篇文章使用的目录。进到目录可以看到如下的文件结构:
claude1009@ubuntu:~/xc7030$ cd u-boot-xlnx-xilinx-v2018.3/
claude1009@ubuntu:~/xc7030/u-boot-xlnx-xilinx-v2018.3$ ls
api config.mk drivers include MAINTAINERS scripts
arch configs dts Kbuild Makefile snapshot.commit
board disk env Kconfig net test
cmd doc examples lib post tools
common Documentation fs Licenses README
二、编译u-boot
首先我们要设置好交叉编译工具。这里是一个比较坑的一点,因为新版的SDK自动安装交叉编译工具,并且更新为 arm-linux-gnueabihf- ,已不是之前的 arm-xilinx-linux-gnueabi- 了。
这里一定要注意。使用旧版的软件时,比如2015.3左右版本的软件 ,就需要安装 arm-xilinx-linux-gnueabi- 交叉编译工具;而和我同样使用2018.3版本软件的同学,就可以不用管了,因为安装 Vivado时已经自动安装好了。现在有很多文章还都是旧的编译器,使用旧的命令编译就会显示没有命令。
这里先设置好环境变量,就可以看到有如下的交叉编译工具,操作如下:
claude1009@ubuntu:~$ source ./Xilinx/SDK/2018.3/settings64.sh
claude1009@ubuntu:~$ export ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
claude1009@ubuntu:~$ ar
ar arm-linux-gnueabihf-gcc-ar arm-linux-gnueabihf-size arm-none-eabi-gcc-ranlib armr5-none-eabi-addr2line armr5-none-eabi-gcov-tool
arch arm-linux-gnueabihf-gcc-nm arm-linux-gnueabihf-strings arm-none-eabi-gcov armr5-none-eabi-ar armr5-none-eabi-gdb
arecord arm-linux-gnu