注意:以下操作均是在终端中先执行cd命令进入相应目录后进行,‘...'一定要改成cd所进入的相应目录名

准备编译环境

以下内容仅作为参考,现vivado开发套件已包含交叉编译器

安装交叉编译器xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
a.将文件设置为可执行程序
chmod 775 xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
b.在终端运行
./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
c.**也可直接在终端运行如下命令进行安装**
sh ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin

1.安装Vivado

a.下载Vivado SDK
b.解压

tar -zxvf Xilinx_Vivado_SDK_2015.1_0428_1.tar.gz

C.安装

2.设置环境变量

a.添加系统环境变量
超级终端下用vi打开系统环境变量文件profile

vi /etc/profile

添加如下内容:

PATH="$PATH:.../Xilinx/SDK/2015.1/gnu/arm/lin/bin/:.../git/u-boot-xlnx/tools/"
export PATH
其中".../Xilinx/SDK/2015.1/gnu/arm/lin/bin/"
为交叉编译工具的路径,vivado开发套件安装目录下
".../git/u-boot-xlnx/tools/"为编译内核生成uImage(即wrapping zImage with a U-Boot heater)时所需工具mkimage的路径

运行如下命令使设置生效

source /etc/profile

b.设置相对环境变量
cd进入相应目录后运行如下命令

export CROSS_COMPILE=arm-xilinx-linux-gnueabi-

准备工作

1.cd进入准备存放u-boot源码跟内核源码的目录
2.执行git clone ‘源码的github地址’(不带引号)
官方github源码地址https://github.com/Xilinx

u-boot编译变量

a.cd进入u-boot源码(既u-boot-xlnx)目录
b.添加CROSS_COMPILE相对环境变量
c.ia32库链接

ln -s /usr/lib64/libssl.so /usr/lib/

c.配置u-boot
配置文件目录‘.../git/u-boot-xlnx/configs/’

make zynq_zc70x_config

d.运行make进行编译
e.将u-boot-xlnx目录下生成的u-boot文件重命名为u-boot.elf

linux内核编译

a.cd进入内核源码(既linux-xlnx)目录
b.添加CROSS_COMPILE相对环境变量
c.配置内核源码
配置文件目录‘.../git/linux-xlnx/arch/arm/configs’

make ARCH= arm xilinx_zynq_defconfig

d.运行make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage进行编译
e..../git/linx-xlnx/arch/arm/boot/目录下会生成uImage文件

生成boot.bin文件

a.打开vidado sdk
b.选择xilinx tools下的create zynq boot image
c.将上面生成的boot.elf以及fsbl文件添加进去(fsbl文件可通过新建工程生成,自寻google)
d.点击create image生成所需的boot.bin文件

Devicetree

在目录.../git/linux-xlnx/arch/arm/boot/dts/下的文件zynq-zc706.dtb即是,重命名为devicetree.dtb

uramdisk.image.gz

该文件可使用官方所提供简易系统启动包里的
http://www.wiki.xilinx.com/Zynq+Releases

测试

将上述所生成的uImage、boot.bin、devicetree.dtb以及官方包中的uramdisk.image.gz复制到SD卡根目录,将SD卡插入开发板,将USB-UART线插入PC的usb接口,将启动模式选择的拨码开关的3和4拨到高电平(即最高档)
linux下:电脑终端运行sudo minicom -D /dev/ttyUSB0,设置com参数为:

baud rate=115200
data bits=8
stop bits=1
flow control=none
parity=none

将上电开关拨到连通位置,观察终端打印消息
windows下:打开teraterm终端软件,设置com参数,开启监控查看打印消息(其它com口监控软件也可)

最后由 oucb 编辑于2016年05月03日 17:01