在Vitis中编辑代码后进行项目编译,编译失败,报错代码为
fatal error: xparameters.h: No such file or directory
只有在Vivado中使用自定义IP时才会出现
假设自定义创建一个AXI4 IP核ps_pl_axi_lite
(名字自取),会在ip_repo目录下生成一个文件夹ps_pl_axi_lite_1_0
,该目录下的
./drivers/ps_pl_axi_lite_v1_0/src
内有四个文件(由Vivado自动生成),功能为在Vitis中为使用这个自定义IP核提供函数
其中的Makefile
是官方提供的,但是这个文件有 错误 ,会导致编译报错,Vivado部分完成后导出xsa文件,再在Vitis创建项目,软件会将这个Makefile等文件拷贝到Vitis项目的system_wrapper中,最终在Vitis中编译项目时就会因为这个Makefile的错误而编译失败
官方给出了正确的Makefile
参考,但很奇怪为什么他们不在Vivado中修复这个bug,需要我们自己复制下面的内容粘贴到自动生成的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}
本文章使用limfx的vscode插件快速发布