這是《創(chuàng)建 Vitis 加速平臺》系列的第 2 篇博文。
在前文中,我們講解了如何創(chuàng)建硬件以及如何通過 XSA 將元數(shù)據(jù) (metadata) 傳遞給 Vitis。
在本文中,我們將講解如何使用此 XSA 以及如何創(chuàng)建在目標(biāo)平臺上實現(xiàn)設(shè)計加速所需的軟件鏡像。
熟悉 OpenCL 的用戶可能對“內(nèi)核 (kernel)”一詞已耳熟能詳,在 OpenCL 中執(zhí)行功能的位置即被稱為“內(nèi)核”。
在 Vitis 加速流程中也使用同樣的命名法。但在其中使用 Xilinx Runtime (XRT) API 來執(zhí)行內(nèi)核。
XRT 基于 Linux 并在 x86 或開發(fā)板(AArch64 或 Arm)上運行。XRT 的功能與用于其執(zhí)行的架構(gòu)彼此獨立,即,它并不知曉自己是在 x86 上執(zhí)行還是在開發(fā)板(AArch64 或 Arm)上執(zhí)行。
但對于邊緣(AArch64 或 Arm)平臺,我們需要添加 ZOCL 驅(qū)動。ZOCL 驅(qū)動用于為每個內(nèi)核分配資源。在本文中,我們將講解如何向全新或現(xiàn)有 PetaLinux 工程添加 XRT 和 ZOCL。
向 PetaLinux 工程添加 XRT:
petalinux-create -t project --template zynqMP -n zcu104_base_sw
cd zcu104_base_sw
petalinux-config --get-hw-description=
Select DTG Settings -> (zcu104-revc) MACHINE_NAME
打開project-spec/meta-user/
conf/user-rootfsconfig,并添加如下內(nèi)容:
CONFIG_xrt
CONFIG_xrt-dev
CONFIG_zocl
CONFIG_opencl-clhpp-dev
CONFIG_opencl-headers-dev
CONFIG_packagegroup-petalinux-opencv
petalinux-config -c rootfs
User Packages, and select all here
下一步,將 zocl 驅(qū)動節(jié)點添加到 system-user.dtsi。
/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>, <3? 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>;
};
};
然后,運行以下命令:
petalinux-build
cd images/linux
petalinux-build --sdk
petalinux-package --sysroot
完整性檢查:
在封裝平臺之前,有必要執(zhí)行完整性檢查,以確保已將 XRT 和 ZOCL 添加到 rootfs 中。
方法是在板上啟動 Linux 鏡像:
cd images/linux
petalinux-package --boot --fpga --u-boot
將以下文件置于啟動器件上,然后啟動
image.ub
BOOT.BIN
boot.scr
驗證XRT 庫:
在 /usr/lib 目錄中對 XRT 庫執(zhí)行 grep 操作:
ls /usr/lib | grep libxrt_core
針對 libxilinxopencl 重復(fù)此操作:
ls /usr/lib | grep libxilinxopencl
驗證ZOCL DT 節(jié)點:
列出 amba 下的所有節(jié)點
ls /sys/devices/platform/amba
至此大功告成。
這樣所得到的 Linux 鏡像中已包含了 XRT 支持,并且針對開發(fā)板已啟用該支持。不僅如此,我們已生成了 Vitis 中執(zhí)行交叉編譯所需的 sysroot。如果您計劃設(shè)置一系列定制平臺用于相同架構(gòu),那么只需為每個版本創(chuàng)建 1 個 sysroot 即可(例如,2020.1)。
原文標(biāo)題:開發(fā)者分享 | 在 PetaLinux 中為加速平臺創(chuàng)建軟件工程
文章出處:【微信公眾號:XILINX技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1384瀏覽量
40453 -
Linux
+關(guān)注
關(guān)注
87文章
11353瀏覽量
210601 -
軟件
+關(guān)注
關(guān)注
69文章
5034瀏覽量
88169
原文標(biāo)題:開發(fā)者分享 | 在 PetaLinux 中為加速平臺創(chuàng)建軟件工程
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Docker-鏡像的分層-busybox鏡像制作
![Docker-<b class='flag-5'>鏡像</b>的分層-busybox<b class='flag-5'>鏡像</b>制作](https://file1.elecfans.com/web3/M00/06/0F/wKgZO2eHIVWABdMXAAAXs32FF8s788.png)
華為云 X 實例的鏡像管理詳解
![華為云 X 實例的<b class='flag-5'>鏡像</b>管理詳解](https://file1.elecfans.com//web3/M00/05/29/wKgZO2d87WCAUbD8AACKsQT93Ao991.png)
基于Flexus X加速MySQL鏡像搭建XXL-JOB任務(wù)調(diào)度平臺
![基于Flexus X<b class='flag-5'>加速</b>MySQL<b class='flag-5'>鏡像</b>搭建XXL-JOB任務(wù)調(diào)度<b class='flag-5'>平臺</b>](https://file1.elecfans.com//web3/M00/03/CA/wKgZPGdsEluAAvNUAAFBJ9ndVVs789.png)
飛凌嵌入式ElfBoard ELF 1板卡-mfgtools燒錄流程介紹之燒寫所需鏡像
HAL庫在Arduino平臺上的使用
Elektrobit EB zoneo平臺助力提升車輛網(wǎng)絡(luò)性能
![Elektrobit EB zoneo<b class='flag-5'>平臺</b>助力提升車輛網(wǎng)絡(luò)性能](https://file1.elecfans.com/web2/M00/05/3F/wKgaombNd2aAESWIAAnMQv6CTnI596.png)
評論