自定义IP导入Vitis
目前很幸运的是这个问题只有在vivado2021.1版本存在,很不幸的事情就是,我用的就是这个版本QAQ,下面我完整的走一遍自定义的IP导入vitis,并且复现一下我遇到的问题以及解决办法,并且相关其他问题的连接供大家参考。
vivado工程
这个是我用block designer搭建的工程,具体可以参考正点原子相关的例程SDK篇_50~52_基于BRAM的PS和PL数据交互(BRAM Controller)毕竟问题不在这边,所以简单的看一下大致工程。
之后综合生成bit流文件,然后按照下面的步骤生成.xsa文件,这个用于后续导入vitis,然后一路next就好了,但是注意下面两个,一个要包含bit流文件,还有一个保存的路径地址,待会要用。
新建Vitis工程
这里就按照下面的步骤一步步创建就好了,关键的点我会提醒一下
修改配置(BUG所在)
BUG1:fatal error: xxx.h: No such file or directory.
新建一个main文件,然后写入下面这个(用正点原子的也行,而且我也没写完,随便写写的QVQ),然后保存+编译(ctrl+B),然后就会遇到fatal error: xxx.h: No such file or directory.
然后就会出现我下面这个问题,这个问题的原因是由于自定义IP的问题,然后官方决定我们要有能力写makefile文件,显然我没有这个能力,所以要做一些修改。
解决办法:改写platform中的makefile文件(下面两个都要修改),直接全选替换成下面这个(其实就是通用的makefile)


COMPILER= ARCHIVER= CP=cp COMPILER_FLAGS= EXTRA_COMPILER_FLAGS= LIB=libxil.a RELEASEDIR=../../../lib INCLUDEDIR=../../../include INCLUDES=-I./. -I${INCLUDEDIR} INCLUDEFILES=*.h LIBSOURCES=$(wildcard *.c) OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c))) ASSEMBLY_OBJECTS = $(addsuffix .o, $(basename $(wildcard *.S))) libs: echo "Compiling simple_adder..." $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} ${ASSEMBLY_OBJECTS} make clean include: ${CP} $(INCLUDEFILES) $(INCLUDEDIR) clean: rm -rf ${OBJECTS} ${ASSEMBLY_OBJECTS}
然后build一下平台,然后再build一下工程(绿标的是平台,蓝标是工程)
BUG2:make: *** [makefile:39: package] Error 1
搞定上面之后,我们就来到第二阶段的BUG,就是下面这个报错。
这里说不存在这个文件,那么解决问题就是创一个新的即可,创建一个文件夹qemu,然后新建一个qemu_args.txt文件,里面什么都不用写,然后编译平台和工程,就么的问题啦o.0
参考链接
Xilinx Vitis arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument-CSDN博客:这个链接还写了其他的问题,如果还有其他问题可以看看
Vitis报错:fatal error: xxx.h: No such file or directory._vitis no such file or directory-CSDN博客