前言
最近接手一個 Zynq 的開發板 (RFSoC ZCU111),新手上路肯定是要參考網路上豐富的文件,才會學得快。但在參考文獻的過程中碰到一個似乎教學的作者沒有提及,但自己遇到的問題,也就是 Build 時缺少一堆 .h
檔案的錯誤提示。
開發環境
- Vivado 2019.2
- Vitis 2019.2
- Windows 10
解決方法
網路上沒有提供清楚的解決方法,因此自己記錄下遇到的問題與解決的步驟
在 Vitis (或 SDK) 創建 Application Project,硬體平台選擇 Vivado 輸出的
*.xsa
檔案,並且將範例*.c
檔匯入src
目錄下,開始 Build,會出現以下的提示,這是在路徑下找不到*.h
檔案的意思,但照理來說 Vivado 的xsa
都包含這些了。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1722:54:01 **** Incremental Build of configuration Debug for project LED ****
make all
make --no-print-directory pre-build
a9-linaro-pre-build-step
' '
make --no-print-directory main-build
'Building file: ../src/LED_test_tut_1C.c'
'Invoking: ARM v7 gcc compiler'
arm-none-eabi-gcc -Wall -O0 -g3 -c -fmessage-length=0 -MT"src/LED_test_tut_1C.o" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -IC:/Zynq_Book/first_zynq_design/SDK/first_zynq_system_wrapper/export/first_zynq_system_wrapper/sw/first_zynq_system_wrapper/standalone_domain/bspinclude/include -MMD -MP -MF"src/LED_test_tut_1C.d" -MT"src/LED_test_tut_1C.o" -o "src/LED_test_tut_1C.o" "../src/LED_test_tut_1C.c"
../src/LED_test_tut_1C.c:31:10: fatal error: xgpio.h: No such file or directory
#include "xgpio.h"
^~~~~~~~~
compilation terminated.
make[1]: *** [src/subdir.mk:23: src/LED_test_tut_1C.o] Error 1
make: *** [makefile:34: all] Error 2
22:54:02 Build Finished (took 987ms)查看在
*.h
目錄底下到底有甚麼檔案,我的路徑為:1
C:\Zynq_Book\first_zynq_design\SDK\first_zynq_system_wrapper\export\first_zynq_system_wrapper\sw\first_zynq_system_wrapper\standalone_domain\bspinclude\include
發現只有一個檔案
xparameters.h
,這為不正常的結果。再回到 Vitis 畫面,直接重新 Build BSP 一次,並等待執行完成。再回到步驟 2 的路徑去查看,會發現多出很多
*.h
檔案,回到Vitis,Build*.c
檔案,結果為可以順利完成。