本文转载自: 硬码农二毛哥微信公众号
在完成如下两步的基础上再进行Vitis DPU加速设计:
A base hardware design exported from Vivado Design Suite
A base software design that includes Linux kernel, root file system,and device tree
完成上述步骤后,单板可以正常启动,进入加速设计流程,下面是对vitis设计流程进行总结,更详细步骤请参考Vitis-In-Depth-Tutorial/README.md at 2020.1 · Xilinx/Vitis-In-Depth-Tutorial · GitHub。
1、 在硬件平台中加入硬件接口和中断,导出xsa
1)重新配置Processor IP Block
2)加入clock block,加入Processor System Reset blocks,加入中断模块,并进行配置,在vivado 控制台要运行如下命令
set_property PFM.IRQ {intr {id 0 range 32}} [get_bd_cells /axi_intc_0]
3)连接时钟、复位和中断模块
4)在 Window->Platform interfaces中设置Platform interfaces
5)导出xsa
2、 使用Petalinux生成系统
1)导入xsa
2)修改设备树
3)在Kenerl和Root file system中加入需要的package
4)运行:
petalinux-build petalinux-build --sdk
3、 使用Vitis创建platform
1)概念简介:
Vitis软件platform工作空间结构,有两种Project类型:
Platform Project和System project
Platform Project:提供硬件信息和软件运行环境。可通过导入XSA或存在的Platform建立。几个System project可以建立在同一个Platform Project 上,共享硬件和软件软件。
System project:将同时运行在器件上的应用进行组合。两个独立运行在同一个处理器上的应用不能在一个System project里。一个workspace可以包含多个System project。
Workspace:当打开Vitis软件平台时,创建workspace,用来存储工程数据。
Platform:是硬件部件(XSA)和软件部件(BSP,FSB等)的集合。
Application(Software Project):一个Software Project包含一个或多个源文件,和必要的头文件,编译和生成二进制输出文件(ELF)。System project可以包含多个application project。么一个software project必须有一个相应的domain。
XSA:包含硬件信息,例如处理器配置信息,外设连接信息和器件初始化代码。当创建Platform Project时需要提供XSA。
Domain:domain是一个板级支持包(BSP)或者包含驱动的运行系统(OS),在这上面构建应用。创建好的软件镜像包含部分Xilinx库。可以在Domain中创建多个应用。Domain可以是一个处理器,也可以是多个。
2)新建文件夹xx_custom_pkg,在xx_custom_pkg下新建文件夹pfm,在pfm下新建boot和image。
3)安装sysroot
./sdk.sh -d ../xx_custom_pkg/pfm
4)将文件拷贝到boot和image
cp zynqmp_fsbl.elf pmufw.elf bl31.elf u-boot.elf ../../../ xx_custom_pk/pfm/boot/ cp boot.scr image.ub rootfs.cpio.gz ../../../ xx_custom_pk/pfm/image/ zynqmp_fsbl.elf改名为fsbl.elf
5)在boot文件夹中新建linux.bif文件,内容如下:
the_ROM_image: { [fsbl_config] a53_x64 [bootloader] [pmufw_image] [destination_device=pl] [destination_cpu=a53-0,exception_level=el-3, trustzone] [destination_cpu=a53-0, exception_level=el-2] }
6)在xx_custom_pkg文件夹下运行vitis,创建vitis platform
4、 在platform上创建应用程序
1)准备DPU kernel
下载vitis ai,将Vitis-AI中的DPU-TRD文件夹拷贝到工程文件夹下。
运行:
source/Vitis/2020.1/settings64.sh. source opt/xilinx/xrt/setup.sh
修改 prj_config和dpu_conf.vh
2)创建vitis应用
加入源文件和各种库,进行编译
3)准备神经网络,下载resnet-50
5、将文件拷贝到sd进行测试
在SD新建分区boot和rootfs(ext4),将工程文件夹../ Hardware/sd_card/中的内容拷贝到boot文件夹,将rootfs.tar.gz解压到sd的rootfs文件夹。
运行程序: