03 配置硬件链接项目
vpp_link,现在您已经导入了内核,您需要告诉Vitis链接器如何将所有内核连接在一起。
单击File->New Component->System Project创建新的系统项目组件。
将此系统组件命名为simple_aie_application_system_project并点击【Next】。
在平台选择页面,选择之前创建的base_pfm_evm190。
跳过“嵌入式组件路径”页面(单击Next)。此页面用于运行Linux系统,我们的系统将是裸机系统,所以不用管。
点击【Finish】
单击文件底部Components部分中的Add Existing Component。然后单击HLS并选择mm2s和s2mm组件。
继续在Components中点击Add Existing Components,单击AI Engine选择simple_aie_application模块。
现在您需要告诉Vitis编译器系统的连接情况。
此步骤是使用配置文件完成的。仍在设置文件vitis-sys.json中,在Hardware Link Settings下展开binary_container_1并单击hw_link/binary_container_1-link.cfg

在binary_container_1-link.cfg中将视图更改为源代码编辑器,并在【connectivity】中添加以下行。

在binary_container_1-link.cfg配置页面中,将视图更改回设置表单并启用导出硬件(XSA)。

04 构建系统
在FLOW导航器中,确保选择simple_aie_application_system_project,在HARDWARE->LINK-binary_container_1下点击Build Binary Container构建二进制容器。当提示要求构建HLS组件(mm2s和s2mm)时,单击【OK】。编译过程需要一段时间才能完成。底层AI Engine应用工程、硬件内核工程、硬件链接工程会依次编译。系统应该成功构建,没有错误。


2.1.4 PS应用程序创建和运行
在本节中,您将学习如何使用上一步中创建的XSA构建PS裸机应用程序,然后构建并运行完整的系统。
01 在裸机域创建新平台
在Vitis IDE中,工作区目录与前面的步骤相同,单击File->New Component->Platform设置平添名称为AIE_A-TO_Z_pfm_evm190,然后单击【Next】。

操作系统选择standlone,Processor选择psv_cortexa72_0
Complier选择GCC Compiler,然后点击【Finish】。

编译platform。
02 构建裸机AI Engine控制应用程序
单击File->New Component->Application创建新应用程序。
将应用程序名称设置为A-to-Z_app,然后单击【Next】。
选择AIE_A-to-Z_pfm_evm190作为平台,然后单击【Next】。
选择A72_0处理器域(standlone_psv_cortexa72_0),然后单击【Next】,然后点击【Finish】。
右键单击A-to-Z_app项目下的src文件夹,然后单击Import->Files,导入aie_control.cpp文件。
从git存储库的src文件夹导入main.cpp
浏览mian.cpp文件,您可以看到代码正在初始化输入数据和输出数据的内存空间。需要注意的时使用.init()和.run() API来控制AI Engine。

有两个选项可以从系统启用AI Engine graph
1)在PDI中启用graph。这意味着该graph将在启动时启动并一直运行。
2)使用
在A-to-Z_app组件下,打开Settings下的UserConfig.cmake
在Directories中添加以下目录。

同样在UserConfig.cmake文件中Libraries部分添加:
在 Libraries(-l)下添加:adf_api
在Libary search path(-l)下添加:$ENV{XILINX_VITIS}/aietools/lib/aarchnone64.o

在Symbols中添加__PS_BARE_METAL__

修改Linker Script以增加AIE库的堆大小
1)在Project Explorer,展开A-to-z_app模块
2)在src目录下面,双击lscript.ld打开linker script
3)修改堆大小为0x100000(1MB)

点击【Build】编译组件
03 打包整个系统
simple_aie_application_system_project的配置文件vitis-sys.json
单击Package Settings下的package.cfg配置文件。

在General部分的Baremetal Elf设置中添加以下内容,告诉打包器添加可执行应用程序并在A72处理器上运行。

在AI Engine中勾选Do not enable cores

在AI Engine中不使能Enable debug

构建用于硬件仿真的simple_aie_application_system_project项目(单击Flow导航器中HARDWARE EMULATION下的【Build All】)
04 在硬件仿真中运行系统
现在系统已经构建完成,您可以在硬件仿真中对其进行测试。
在FLOW导航器中,单击HARDWARE EMULATION下的Start Emulator

在Start Emulator弹出窗口中,保持默认配置并单击【Start】

注意:您可以使用“Show Waveform”选项打开vivado模拟器,并观察PL信号的波形。 如果您选择此选项,请确保在vivado模拟器中运行模拟,因为QEMU将等待它。
您可以在vitis控制台中看到应用程序成功运行且没有错误。

要停止仿真,请单击FLOW导航器Start Emulator旁边的x

05 构建针对硬件的系统
在硬件中运行系统之前,您需要重建系统以针对硬件。为硬件构建simple_aie_application_system_project项目(单击FLOW导航器中HARDWARE下的Build All)。
6B 使用JTAG在硬件中运行或调试系统
要通过Vitis IDE使用JTAG在硬件中运行系统,因为这是一个裸机系统,我们需要创建第二个系统项目,仅包含ai引擎应用程序和ps应用程序。
点击 File->New Component->System Project创建新的系统项目组件。
将系统组件命名为a-to-z_jtag,然后单击【Next】
在Select Platform页面,选择AIE_A-to-Z_pfm_evm190
跳过Embedded Compontent Paths,点击【Next】
打开a-to-z_jtag设置下名为vitis-sys.json的设置文件,然后单击文件底部Compontents部分Add Existing Components。单击应用程序Application并选择A-to-Z_app组件。
重复点击Compontents部分Add Existing Components,单击AI Engine并选择simple_aie_application组件。
a-to-z_jtag中的Package Settings下,添加生成v++链接XSA VitisWorkspace/simple_aie_application_system_project/build/hw/hw_link/binary_container_1.xsa

package settings,package.cfg,不使能Enable debug

在FLOW导航器中,确保选择了a-to-z_jtag并单击Build All

在FLOW导航器中,单击旁边的滚轮

在launch.json页面,点击New Launch configuration
如果你有远程链接,请设置正确的目标连接
启动连接到开发板的串口终端
在launch.json页面,运行应用程序,可以看到应用程序成功运行,没有错误
文章来源:威视锐科技