(一)从网站 https://github.com/analogdevicesinc/hdl/releases 下在对应vivado版本的PL文件,我下载的是 hdl-2018_r1。
(二)打开 vivado 使用 Tcl 命令行进入到 hdl-2018_r1 目录下依次执行下列命令,也可以将下列命令写成 Tcl 脚本再去执行。
cd library/axi_clkgen
source ./axi_clkgen_ip.tcl
cd ../..
close_project
cd library/axi_dmac
source ./axi_dmac_ip.tcl
cd ../..
close_project
cd library/axi_hdmi_tx
source ./axi_hdmi_tx_ip.tcl
cd ../..
close_project
cd library/axi_i2s_adi
source ./axi_i2s_adi_ip.tcl
cd ../..
close_project
cd library/axi_spdif_tx
source ./axi_spdif_tx_ip.tcl
cd ../..
close_project
cd library/util_i2c_mixer
source ./util_i2c_mixer_ip.tcl
cd ../..
close_project
cd projects/adv7511/zed
source ./system_project.tcl
之后就会生成 bitstream 文件,点击 vivado 的 File-->Export-->Export Hardware... 导出 bitstream 文件,在弹出的选项卡中勾选 Include bitstream 选项。之后点击 vivado 的 File-->Launch SDK,进入SDK软件。进入到 SDK 后建立FSBL工程,编译之后在目录 hdl-2018_r1\projects\adv7511\zed\adv7511_zed.sdk\FSBL\Debug 会生成需要的 .elf文件。
(三)制作 BOOT.BIN 文件
将 vivado 生成的比特流文件(也就是.bit文件),还有 SDK 生成的 .elf 文件,以及在Zedboard学习(二)----Linux环境下编译u-boot生成的 u-boot.elf 文件拷贝到同一个文件夹中。接着在此文件夹中创建 gui2.bif 文件,在该文件中写入下列内容:
the_ROM_image:
{
[bootloader]fsbl.elf //fsbl.elf对应SDK生成的.elf文件
system.bit //system.bit对应vivado生成的 .bit文件
u-boot.elf //对应生成的u-boot.elf文件
}
使用 bootgen.exe 工具生成 BOOT.BIN 文件,对应的 bootgen.exe 工具我会上传。将该工具放到以上同一目录中,创建 .bat 文件,在该文件中写入如下内容:
bootgen -image GUI2.bif -o i BOOT.BIN -w on
之后创建 uEnv.txt 文件,在该文件中写入如下内容:
bootargs=console=ttyPS0,115200n8 root=/dev/mmcblk0p2 rw noinitrd rootfstype=ext4 rootwait
目录结构如下:
其中 devicetree.dtb 文件 、uImage 文件对应Zedboard学习(三)----Linux环境下编译Linux系统内核生成的设备树文件以及内核文件。之后双击 .bat 文件即可生成 BOOT.BIN 文件。
(四)格式化SD卡
1、将SD卡格式化为两个分区,BOOT 分区和 rootfs 分区,BOOT 分区为 FAT32文件系统,用于保存以上生成的文件,rootfs 分区为EXT3文件系统,用于保存Linaro文件系统。
2、下载 linaro 文件系统,这里我是用的是 linaro-o-ubuntu-desktop-tar-20111219-0.tar ,将分区好的 SD 插到电脑上,虚拟机会识别SD卡,使用下列命令将该文件系统解压到 EXT3 分区。
sudo tar --strip-components=3 -C /media/z/rootfs -xzpf linaro-o-ubuntu-desktop-tar-20111219-0.tar.gz binary/boot/filesystem.dir
3、将以上生成的文件拷贝到SD卡的FAT32分区
之后使用HDMI连接线连接显示器,将开发板设置为SD卡启动,然后就可以看到桌面版的Linux操作系统啦。目前使用的PL工程还不支持VGA显示,可以更改该PL工程添加VGA逻辑使其支持VGA。