인프런 커뮤니티 질문&답변

무말랭이님의 프로필 이미지
무말랭이

작성한 질문수

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

8장 오류 발생

작성

·

1.2K

1

안녕하세요.
강의 재미있게 잘 듣고 있습니다.
이런 소중한 강의 만들어주셔서 감사합니다.
 
8장 build 과정에서 error가 발생하는데,
그 에러가 극복이 안되어서 여쭙습니다.
 
---
 
현재 저는 Vivado 2022.1 ver을 사용하고 있습니다.
그래서 [FPGA 8장 실습 개정]에 따라 실습을 진행하고 있었습니다.
하지만 build가 정상적으로 마무리 되지 않았습니다.
 
이때 발생하는 에러 메시지는 다음과 같습니다.
(빌드전에는 sw>...>xparameters.h 가 정상적으로 존재했는데
빌드후에는 platform Out-of-date 문제가 발생하며 해당 파일류들이 삭제(?!) 됩니다.)
 
 
09:24:16 **** Build of configuration Debug for project lab08_app ****
make all 
make --no-print-directory pre-build
a9-linaro-pre-build-step
' '
make --no-print-directory main-build
'Building file: ../src/main.c'
'Invoking: ARM v7 gcc compiler'
arm-none-eabi-gcc -Wall -O0 -g3 -c -fmessage-length=0 -MT"src/main.o" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -IC:/dev/fpga_proj/lab08_vitis/design_1_wrapper/export/design_1_wrapper/sw/design_1_wrapper/standalone_ps7_cortexa9_0/bspinclude/include -MMD -MP -MF"src/main.d" -MT"src/main.o" -o "src/main.o" "../src/main.c"
../src/main.c:21:10: fatal error: xparameters.h: No such file or directory
   21 | #include "xparameters.h"
      |          ^~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [src/subdir.mk:23: src/main.o] Error 1
make: *** [makefile:34: all] Error 2

09:24:16 Build Finished (took 287ms)

 
헤더의 절대경로로 바꾸어본다거나,
makefile txt도 갈아끼워본다거나,
결국 프로젝트를 처음부터 재생성한다거나,
여러가지 조치를 10번 이상 해보았는데
그럼에도 불구하고 계속해서 같은 상황을 벗어날 수가 없습니다.
 
---
 
현재 상황에서 어떻게 문제를 해결하면 좋을지 여쭤봅니다.
감사합니다.
 
---
 
추가로 vivado 화면도 첨부합니다.
 
 
추가로 로컬 파일 디렉토리도 첨부합니다.
 
 

답변 2

1

무말랭이님의 프로필 이미지
무말랭이
질문자

(새로 촬영해서 업로드해주신 수업 내용 기반으로 해결방법 메모)

 

다음 두 경로(프로젝트 명에 따라 파일 이름이 다를 수 있음)에 들어가면 myip_v1_0 이라는 폴더가 있고, 그 폴더의 src 내부에 Makefile이 있음.

[1] design_1_wrapper>ps7_cortexa9_0>standalone_ps7_cortexa9_0>bsp>ps7_cortexa9_0>libsrc>

[2] design_1_wrapper>zync_fsbl>zync_fsbl_bsp>ps7_cortexa9_0>libsrc>

 

다른 libsrc에 있는 임의의 Makefile(영상에서는 gpiops_v3_9 폴더 사용)을 복사해서 myip_v1_0 의 Makefile과 Replace 해준다. (다른 거 -> 내꺼) 

*[1]과 [2] 두개를 모두 바꾸어주어야함.

 

여기서 추가로 BASE_ADDR의 문제를 수정해야 하기 때문에,

이 부분은 새로 업로드된 2022.v1 의 main.c 파일을 사용.

 

<Makefile>

DRIVER_LIB_VERSION = 1.0
COMPILER=
ARCHIVER=
CP=cp
COMPILER_FLAGS=
EXTRA_COMPILER_FLAGS=
LIB=libxil.a

CC_FLAGS = $(COMPILER_FLAGS)
ECC_FLAGS = $(EXTRA_COMPILER_FLAGS)

RELEASEDIR=../../../lib/
INCLUDEDIR=../../../include/
INCLUDES=-I./. -I$(INCLUDEDIR)

SRCFILES:=$(wildcard *.c)

OBJECTS = $(addprefix $(RELEASEDIR), $(addsuffix .o, $(basename $(wildcard *.c))))

libs: $(OBJECTS)

DEPFILES := $(SRCFILES:%.c=$(RELEASEDIR)%.d)

include $(wildcard $(DEPFILES))

include $(wildcard ../../../../dep.mk)

$(RELEASEDIR)%.o: %.c
	${COMPILER} $(CC_FLAGS) $(ECC_FLAGS) $(INCLUDES) $(DEPENDENCY_FLAGS) $< -o $@

.PHONY: include
include: $(addprefix $(INCLUDEDIR),$(wildcard *.h))

$(INCLUDEDIR)%.h: %.h
	$(CP) $< $@

clean:
	rm -rf ${OBJECTS}
	rm -rf $(DEPFILES)

 

이상.

빌드 후 바이너리 생성파일 성공 확인 완료!

 

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

훌륭하십니다!!!

1

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 :)

잘 따라하셨고요. 이해하기 좋게 상세히 적어주셔서 정말 감사드립니다. 

저도 따라해보니 재현이 되었고, 2022.1 의 Tool 버그 로 판단을 하였습니다.

(게으른 Xilinx 가 여럿 사람들을 고생시키네요 ㅠ.ㅠ)

해결방법은 영상으로 별도로 올렸고요.  현재 인코딩 중이니, 고화질로 보실려면 내일 (220717) 오전에 확인해보시면 될 것 같아요.

즐공하셔요 :)

무말랭이님의 프로필 이미지
무말랭이
질문자

아하, 툴의 버전 문제였군요!
우와 ㅠ_ㅠ 이렇게 빠르게 답변해주시는 것을 넘어 
새로운 버전의 문제로 인한 영상까지 이런 속도로 만들어주시다니 
정말로 감사드리고, 감동입니다! 감사합니다!!

무말랭이님의 프로필 이미지
무말랭이

작성한 질문수

질문하기