20200406:
下载地址:ZCU106 Vitis Platform
新编译了一下ZCU106的Vitis Platform。
APP添加了vim,file,unzip,ffmpeg。ROOTFS添加了opencv-dev,gstreamer-dev,v4lutils-dev。
添加的-dev相关组件可以用于在Linux Vitis中对相关功能进行交叉编译。
最近在看Xilinx新出的工具Vitis,这个工具咋说呢,改了好多。。
以上就是我的理解,总之就是Xilinx要搞:Vitis 统一软件平台
以前玩过一下下SDSoC合SDAccel,没有深究。看了Xilinx的Github,还有Vitis的文档,都有提到了一个叫XRT的东西。按照Vitis文档说明:当需要开发基于硬件加速的应用程序时,需要安装Xilinx Runtime (XRT)。
如下图,XRT软件栈结构如下。
XRT可以支持两种开发模式,一种是使用PCIe作为中间层进行相关开发,另一种是在嵌入式内直接进行开发。我没有开发PCIe板卡的需求,所以之后的一切开发还是基于嵌入式系统,就是上图中橙色部分的(Linux MPSoC Driver zocl)。
用户通过XRT的中间件即可方便的在上层使用Python/C/C++进行应用开发。
在代码目录XRT/src/platform/中包含了依赖各种官方硬件的XRT平台,包括ZC702, ZC706, ZCU102, ZCU104, ZED等,但是其中并没有我需要的ZCU106的平台。
因此我会基于一下的环境来进行ZCU106 XRT 的平台搭建。
我Fork了Xilinx/XRT的代码,并在2019.2分支上编写合测试了ZCU106的相关自动化生成脚本。
如果读者希望了解平台创建的过程,可以阅读本章进行了解。或者跳过本章直接使用我自己编译好的ZCU106 XRT 平台仓库的文件。
下载地址:zcu106_xrt_platform.txt
在XRT/src/runtime_src/tools/scripts目录下有很多脚本,可以用于自动化生成一些依赖或是实现一些编译功能。可以通过阅读其中的README.md进行了解。下面我将介绍一些我使用到的关键脚本。
用于自动安装XRT的各种依赖库,运行时要求有管理员权限
用于将XRT的相关功能安装到本地/opt/xilinx/xrt目录内。貌似进行编译合时会使用到。
用于运行xsa创建脚本,调用vivado实现工程创建和输出xsa文件(xsa其实就是以前的hdf文件)。
使用xsa_build.sh运行完生成的xsa文件,并调用Petalinux实现Linux的编译。
将Petalinux生成的各种结果,生成Vitis专用的Platform,用于后续的XRT,Hardware Acceleration,OpenCL,Linux APP,Bare metal APP,RTOS APP开发。
是xsa_build.sh,peta_build.sh,pfm_build.sh三者加起来运行的脚本。
运行如下脚本,即可生成Vitis使用的平台仓库
cd ~/********/XRT/src/runtime_src/tools/scripts
source /opt/xilinx/xrt/setup.sh
source ~/Xilinx/Vivado/2019.2/settings64.sh
source ~/Xilinx/PetaLinux/2019.2/settings.sh
# build xsa
./xsa_build.sh ../../../platform/zcu106vcu_base/zcu106vcu_base_xsa.tcl
# build petalinux
./peta_build.sh ./xsa_build/zcu106vcu_base/zcu106vcu_base.xsa
# build pfm
./pfm_build.sh ./xsa_build/zcu106vcu_base/zcu106vcu_base_pfm.tcl
运行完成后可以在XRT/src/runtime_src/tools/scripts/platform下即可找到编译好的ZCU106 XRT平台:zcu106vcu_base
文件目录结构如下图:
将下载的或是自己生成的zcu106vcu_base的整个目录复制到Vitis安装目录的platforms文件夹内,这样在使用Vitis创建工程时即可选择作为开发平台。如下图:
后续我将继续写一些文章来介绍如何使用生成的zcu106vcu_base平台。
通过本文,读者了解了: