ALTERA SOS EDS 버전 13.0 및 13.1의 문제로 인해 비반 호스팅 응용 프로그램을 구축하는 데 필요한 어셈블러 코드가 누락되었습니다.
이 문제를 해결하려면 아래 단계를 따라 필요한 어셈블러 파일을 다운로드한 다음 링커 스크립트를 업데이트하여 반 호스팅을 비활성화합니다.
SOC EDS 13.0Sp1의 Altera-SoCFPGA-HardwareLib-GNU.tar.gz 예제를 기반으로 한 Makefile 및 Linker 스크립트를 아래 링크에서 다운로드할 수 있습니다. ExampleFiles_nonSemiHosted.zip (altera-socfpga.ld, Makefile, reset.s)
Altera 예제를 템플릿으로 사용하여 비반 호스팅 응용 프로그램을 활성화하는 단계
- 다운로드 reset.o:ExampleFiles_nonSemiHosted.zip
- 기존 Altera 링커 스크립트 altera-socfpga-hosted.ld 복사/백업
- 컴파일 플래그 변경
전에:-lcs3hosted
후:-lcs3unhosted: GROUP(-lgcc -lc -lcs3 -lcs3unhosted -lcs3arm)
- 다음 코드 섹션을 설명하거나 제거합니다.
/* Enable arm semihosting */
EXTERN(__auto_semihosting) /* force exit to be picked up in a hosted or os environment */
EXTERN (exit atexit) - Makefile을 업데이트하여 reset.o를 컴파일하고 2-4단계에서 업데이트된 Linker 스크립트를 가리킵니다.
#Assembler Flags
AFLAGS := -g -O0 -mfloat-abi=soft -march=armv7-a -mtune=cortex-a9 -mcpu=cortex-a9 -x assembler
#Assembler source files
A_SRC := reset.s
#Original Linker script
#LINKER_SCRIPT := altera-socfpga_hosted.ld
#Link to updated linker script for non-semihosted
LINKER_SCRIPT := altera-socfpga.ld
#Clause to compile reset.o
reset.o:
-c reset.s -o reset.o
#Updated linker line to add dependency for reset.o
: reset.o
-T reset.o -o
-d > .objdump
> .map
참고: Makefiles를 편집할 때 올바른 탭 및 공간 규칙이 준수되도록 합니다.
이 문제는 SOC EDS 버전 14.0부터 해결되었습니다.