Vitis2021.2包含自定义IP时无法编译BUG
问题描述:
使用vivado封装自定义IP后,使用vitis2021.2打开,创建platform无法完成build步骤,进而导致无法基于此platform创建application project:
ERROR: [Common 17-48] File not found: D:/Verilog/ZYNQprojects/S6_customIP/VITISPROJECT/S6platform/export/S6platform/S6platform
在build阶段,编译会报告如下错误:
arm-xilinx-eabi-gcc.exe: fatal error: no input files
百度了一下,网上很多通过修改三个makefile脚本,解决了此bug。
但是改makefile的办法在我的Vitis 2021.2(Windows10 22H2)电脑上不起作用,仍然产生报错。
最终解决记录【2023-7-16】
经过请教实验室高手,最简单的解决办法是在正常创建vitis platform工程后,修改两个BSP的配置,将自定义IP的fsbl驱动和standalone驱动设置为none
即可。具体操作如下:
注意:
-
- 上图中的左栏,有两个BSP都需要修改,修改的内容两处都改成上图右侧的
none
状态。
- 上图中的左栏,有两个BSP都需要修改,修改的内容两处都改成上图右侧的
-
- 原始的makefile脚本不要做任何修改!!!
修改完之后,再次编译工程,一切正常:
按照上述方法编译完成后,还需要在application工程中手动加入include头文件,以及相应的宏定义
如果不会自行配置include文件和宏,可以按照以下方式添加:
- 在创建好application project之后,首先build一次,根据报错提示,找到对应的缺失头文件和宏定义
- 再次返回platform project的spr设置页,重新勾选两个BSP的自定义IP驱动选项
- 此时会在platform工程目录下生成缺失的头文件和宏定义,找到这些文件,将其直接复制到application src文件夹中
- 再次取消platform project中两个BSP的自定义驱动,重新build all即可。
BUG更新【2023-7-20】
在有些工程中,按照上述方式设置就已经可以正常编译,完成下载调试。但是今天做多核实验的时候,发现这个工程platform编译和app编译都通过了,但是debug子目录编译出错,导致无法运行。
具体报错如下:(原本报错忘记截图保存了,网上找了个一模一样的)
Error intializing SD boot data : Software platform XML error, sdx:qemuArguments value "zu_base/qemu/pmu_args.txt" path does not exist E:/proj/JSIT-JCS-2022/fpga/zcu15_rbmp/zu_sdk/zu_base/export/zu_base/sw/zu_base/qemu/pmu_args.txt, platform path E:/proj/JSIT-JCS-2022/fpga/zcu15_rbmp/zu_sdk/zu_base/export/zu_base, sdx:configuration zu_base, sdx:image standard
遇到这个找不到qemuxxx的报错以及pmuxxx的报错,直接在对应路径自行创建一个文件夹和同名文件即可。
这个解决方法参考的这个博客:
https://blog.csdn.net/dinsh3100/article/details/124645101
吐槽一下,vitis真是我用过的最垃圾的工业软件!!!
write by tsukimi 2023.7.17