作者:Stephen MacMahon,来源: 赛灵思中文社区论坛
注意:本论坛博客所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件èï¼æªç»Xilinxåèä½æ人许å¯ï¼ç¦æ¢ç¨ä½åä¸ç¨é
è¿æ¯ãå建 Vitis å éå¹³å°ãç³»åç第 3 ç¯åæãå¨åæä¸ï¼æ们讲解äºå¦ä½å建硬件å软件工ç¨ãå¨æ¬æä¸ï¼æ们å°è®²è§£å¦ä½å¨ Vitis⢠ä¸å°ææè¿äºå·¥ç¨å°è£ å¨ä¸èµ·ã
æ¨å¯éè¿ä¸åé¾æ¥æ¥çå
¶å®åé¨åï¼
第 1 é¨åï¼å¨ Vivado ä¸ä¸ºå éå¹³å°å建硬件工ç¨
第 2 é¨åï¼å¨ PetaLinux ä¸ä¸ºå éå¹³å°å建软件工ç¨
第 4 é¨åï¼å¨ Vitis ä¸æµè¯å®å¶å éå¹³å°
å¨ Vitis ä¸å é软件åè½ï¼å建å æ ¸ï¼å³è¡¨ç¤ºå建硬件 IP æ ¸ï¼å¹¶ä½¿ç¨ç±æ¤äº§ççåºç¡æ¶æå°æ¤åè½è¿æ¥å°ç°æå¹³å°ã
为æ¤ï¼Vitis éè¦éæå¹³å°ãVitis ä½¿ç¨ XSA æ¥éæ Vivado å·¥ç¨ãéåï¼å®å°è¿½å ç»è¿æ´æ°ç硬件ï¼å¹¶éæ°å建 Vivado å·¥ç¨ã
å ¶å®ææä¸åé½ä¿æä¸åï¼å½ç¶æ¯ç¹æµåçæçå æ ¸åºç¨é¤å¤ãå æ¤ï¼å¯å¨éåä¸è½ä¿æä¸åãèæ¯ç±æ们æä¾ BIF æ件ï¼å¹¶å¨å ¶ä¸å å«éåå ä½ç¬¦ç¨äºå¨ Vitis ä¸å建è¿äºéåã
æ¤å¤ï¼ä¸ºäºè½å¤æ§è¡å æ ¸ï¼æ们éè¦ä¸ºç®æ 硬件æ§è¡äº¤åç¼è¯ãæ¤å¤ä½¿ç¨çæ¯ PetaLinux ä¸å建ç sysrootã
åå¤éåï¼
为äºä¾¿äºä½¿ç¨ï¼æå¨æ¤å¯¹å¹³å°æ件è¿è¡äºç»ç»ï¼ä½è¿å¹¶éå¿ è¦æ¥éª¤ãéè¦çæ¯ï¼è¯·ç¢è®°å建 BIF æ件æ¶çå¯å¨éåä½ç½®ï¼å 为æ们使ç¨çæ¯å ä½ç¬¦ã
mkdir -p sw_comp/src/a53/xrt/image mkdir sw_comp/src/boot
å建 BIFï¼
BIF æä»¶å¨ bootgen ä¸ç¨äºå建 SD å¯å¨éåã
å ¶ä¸å æ¬ BOOT.BIN æ件ä¸ææååºçä½ç½®ã以ä¸æä¾äºä¸ä¸ªæ¨¡æ¿ã
æ¤å¤è¯·å¡å¿ 注æï¼æ们åªæä¾å ä½ç¬¦æ件åï¼èä¸æä¾å®é æ件åãå·¥å ·å°æ·»å æåè¿äºæ件çè·¯å¾ãå æ¤ï¼æ建议å°ææè¿äºæ件ä¿åå¨ç¸åå¯å¨æ件夹å ãzcu104_base å°ç¨ä½ä¸ºå¹³å°å称ã
the_ROM_image: { [fsbl_config] a53_x64 [bootloader] <zcu104_base/boot/fsbl.elf> [pmufw_image] <zcu104_base/boot/pmufw.elf> [destination_device=pl] <bitstream> [destination_cpu=a53-0, exception_level=el-3, trustzone] <zcu104_base/boot/bl31.elf> [destination_cpu=a53-0, exception_level=el-2] <zcu104_base/boot/u-boot.elf> }
å建 init.sh èæ¬ï¼
å¯å¨æ¶å°è¿è¡æ¤èæ¬ä»¥è¿è¡ XRT 设置ï¼å¹¶å°å¹³å°åç§°ä¼ éå° ZOCLã
cp ./platform_desc.txt /etc/xocl.txt export XILINX_XRT=/usr
å建 platform_desc.txt
è¿æ ·å³å¯å°å¹³å°åç§°ä¼ éå° XRTãæ¤å¤å称åºä¸ Vivado ä¸æä¾çå¹³å°å称å¹é ï¼
zcu104_base
å建 QEMU æ件ï¼
Vitis IDE æ¯æ软件仿çå硬件仿çãQEMU å³å¯ç¨äºæ§è¡æ¤æä½ãä½æ们éè¦ä¼ é QEMU æºå¨è¯¦ç»ä¿¡æ¯ã
é对 PMUï¼éä½¿ç¨ pmu_args.txt æ§è¡æ¤æä½
-M microblaze-fdt -device loader,file=<pmufw.elf> -machine-path . -display none
æ¤å¤è¿éè¦éè¿ qemu_args.txt ä¼ é PSU æºå¨è¯¦ç»ä¿¡æ¯ï¼
-M arm-generic-fdt -serial mon:stdio -global xlnx,zynqmp-boot.cpu-num=0 -global xlnx,zynqmp-boot.use-pmufw=true -net nic -net nic -net nic -net nic -net user -m 4G -device loader,file=<bl31.elf>,cpu-num=0 -device loader,file=<u-boot.elf> -boot mode=5
å¨ Vitis ä¸å°è£ å¹³å°ï¼
å¯å¨ Vitis 并éæ©âå建平å°å·¥ç¨ (Create Platform Project)âï¼

ä½¿ç¨ BIF ä¸ææä¾çå称ï¼

éæ©âæ ¹æ®ç¡¬ä»¶è§è (XSA) å建 (Create from hardware specification (XSA))âï¼

é对æä½ç³»ç»éæ© Linuxï¼ç¶ååæ¶å¾éâçæå¯å¨ç»ä»¶ (generate boot components)âï¼å ä¸ºå¨ PetaLinux ä¸å·²å建è¿äºç»ä»¶ï¼

注ï¼æ¤å¤è¦åä¿¡æ¯ä» ç¨äºå£°æéæ·»å sysrootã
å¡«å
¥ä¸ä¸ç¯åæä¸å建ç软件éåï¼

ç¶åæ§è¡æ建ï¼

å®ææ¤æä½åï¼å¹³å°å°ç½®äº export\zcu104_base.... è³æ¤å¤§ååæã
å¦éæ¥çæ¬æåçä¸ä¸é¨åï¼è¯·åé 第 4 é¨åï¼å¨ Vitis ä¸æµè¯å®å¶å éå¹³å°Â