第一次在HLS中遇见一个官方的函数未定义问题,这就把解决方法记录下来。

在创建好工程,写完工程代码后,发现报错如下

1
2
3
4
5
./src/led_controller_test_tut_4A.o:在函数‘main’中:
/home/greedyhao/Projects/LearningAndWorking/led_controller/led_controller.sdk/LED_Controller_test/Debug/../src/led_controller_test_tut_4A.c:44:对‘Xil_Out32’未定义的引用
collect2: error: ld returned 1 exit status
makefile:39: recipe for target 'LED_Controller_test.elf' failed
make: *** [LED_Controller_test.elf] Error 1

一眼就知道Xil_Out32这个函数,绝对是官方定义的啊。

找到它的定义在xil_io.h这个文件中

1
2
3
4
static INLINE void Xil_Out32(UINTPTR Addr, u32 Value)
{
...
}

在网上查到有人说,因为这个函数是static的,所以将这个头文件include到主函数的文件就可以了

于是在主函数文件添加#include “xil_io.h”并保存好,工程正常