Vitis2021.2自定义IP无法编译BUG

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即可。具体操作如下:

Vitis2021.2自定义IP无法编译BUG_第1张图片

注意:

    1. 上图中的左栏,有两个BSP都需要修改,修改的内容两处都改成上图右侧的none状态。
    1. 原始的makefile脚本不要做任何修改!!!

修改完之后,再次编译工程,一切正常:

Vitis2021.2自定义IP无法编译BUG_第2张图片

按照上述方法编译完成后,还需要在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

你可能感兴趣的:(日常运维,bug,经验分享)