Vitis编程 头文件xparameters.h无法找到

问题描述

在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核提供函数

1

其中的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插件快速发布