添加自定义IP后在vitis中编译报错找不到头文件等

添加自定义IP后在vitis中编译报错找不到头文件等

问题描述

在Vitis中编辑代码后进行项目编译,编译失败,报错代码为:

fatal error: xparameters.h: No such file or directory

原因分析

只有在Vivado中使用自定义IP时才会出现

假设自定义创建一个AXI4 IP核breath_led_ip_1.0(名字自取),会在ip_repo目录下生成一个文件夹breath_led_ip_v1.0,该目录下的

.\ip_repo\breath_led_ip_1.0\drivers\breath_led_ip_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-专业的科研工作者内容发布平台