前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >创建 Vitis 加速平台第 2 部分:在 PetaLinux 中为加速平台创建软件工程

创建 Vitis 加速平台第 2 部分:在 PetaLinux 中为加速平台创建软件工程

作者头像
碎碎思
发布2020-11-03 15:16:05
1.8K0
发布2020-11-03 15:16:05
举报
文章被收录于专栏:OpenFPGAOpenFPGA

作者:Stephen MacMahon

来源: 赛灵思中文社区论坛

这是《创建 Vitis 加速平台》系列的第 2 篇博文。在前文中,我们讲解了如何创建硬件以及如何通过 XSA 将元数据 (metadata) 传递给 Vitis™。

在本文中,我们将讲解如何使用此 XSA 以及如何创建在目标平台上实现设计加速所需的软件镜像。

您可通过下列链接查看其它各部分:

第 1 部分:在 Vivado 中为加速平台创建硬件工程

第 3 部分:在 Vitis 中封装加速平台

第 4 部分:在 Vitis 中测试定制加速平台

引言:

熟悉 OpenCL 的用户可能对“内核 (kernel)”一词已耳熟能详,在 OpenCL 中执行功能的位置即被称为“内核”。

在 Vitis 加速流程中也使用同样的命名法。但在其中使用 Xilinx Runtime (XRT) API 来执行内核。

XRT 基于 Linux 并在 x86 或开发板(AArch64 或 Arm)上运行。XRT 的功能与用于其执行的架构彼此独立,即,它并不知晓自己是在 x86 上执行还是在开发板(AArch64 或 Arm)上执行。

但对于边缘(AArch64 或 Arm)平台,我们需要添加 ZOCL 驱动。ZOCL 驱动用于为每个内核分配资源。在本文中,我们将讲解如何向全新或现有 PetaLinux 工程添加 XRT 和 ZOCL。

向 PetaLinux 工程添加 XRT:

代码语言:javascript
复制
petalinux-create -t project --template zynqMP -n zcu104_base_sw
cd zcu104_base_sw
petalinux-config --get-hw-description=<path to XSA>
    Select DTG Settings -> (zcu104-revc) MACHINE_NAME

打开 project-spec/meta-user/conf/user-rootfsconfig,并添加如下内容:

代码语言:javascript
复制
CONFIG_xrt
CONFIG_xrt-dev
CONFIG_zocl
CONFIG_opencl-clhpp-dev
CONFIG_opencl-headers-dev
CONFIG_packagegroup-petalinux-opencv
代码语言:javascript
复制
petalinux-config -c rootfs
    User Packages, and select all here

下一步,将 zocl 驱动节点添加到 system-user.dtsi。

代码语言:javascript
复制
/include/ "system-conf.dtsi"
/{
};

&axi_intc_0 {
	xlnx,kind-of-intr = <0x0>;
	xlnx,num-intr-inputs = <0x20>;
};


&amba {	
	zyxclmm_drm {
		compatible = "xlnx,zocl";
		status = "okay";
		interrupt-parent = <&axi_intc_0>;
		interrupts = <0  4>, <1  4>, <2  4>,   4>,
			     <4  4>, <5  4>, <6  4>, <7  4>,
			     <8  4>, <9  4>, <10 4>, <11 4>,
			     <12 4>, <13 4>, <14 4>, <15 4>,
			     <16 4>, <17 4>, <18 4>, <19 4>,
			     <20 4>, <21 4>, <22 4>, <23 4>,
			     <24 4>, <25 4>, <26 4>, <27 4>,
			     <28 4>, <29 4>, <30 4>, <31 4>;
	};
};

然后,运行以下命令:

代码语言:javascript
复制
petalinux-build
cd images/linux
petalinux-build --sdk
petalinux-package --sysroot

完整性检查: 在封装平台之前,有必要执行完整性检查,以确保已将 XRT 和 ZOCL 添加到 rootfs 中。 方法是在板上启动 Linux 镜像:

cd images/linux

petalinux-package --boot --fpga --u-boot

将以下文件置于启动器件上,然后启动 • image.ub • BOOT.BIN • boot.scr 验证 XRT 库: 在 /usr/lib 目录中对 XRT 库执行 grep 操作:

ls /usr/lib | grep libxrt_core

针对 libxilinxopencl 重复此操作:

ls /usr/lib | grep libxilinxopencl

验证 ZOCL DT 节点: 列出 amba 下的所有节点

ls /sys/devices/platform/amba

至此大功告成。 这样所得到的 Linux 镜像中已包含了 XRT 支持,并且针对开发板已启用该支持。不仅如此,我们已生成了 Vitis 中执行交叉编译所需的 sysroot。

如果您计划设置一系列定制平台用于相同架构,那么只需为每个版本创建 1 个 sysroot 即可(例如,2020.1)。 如需了解后续步骤,请参阅本系列博客的第 3 部分:在 Vitis 中封装加速平台

Original Source: Creating an Acceleration Platform for Vitis Part One: Creating the Hardware Project for the Acceleration Platform in Vivado

(https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Creating-an-Acceleration-Platform-for-Vitis-Part-One-Creating/ba-p/1138208)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenFPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档