Karena masalah pada Altera SOS EDS versi 13.0 dan 13.1, kode Assembler yang diperlukan untuk membuat aplikasi yang tidak semi-host hilang.
Untuk mengatasi masalah ini, ikuti langkah-langkah di bawah ini untuk mengunduh berkas Perakit yang diperlukan kemudian perbarui skrip linker Anda untuk menonaktifkan semi-hosting.
Contoh skrip Makefile and Linker yang berbasis pada contoh Altera-SoCFPGA-HardwareLib-GNU.tar.gz dari SOC EDS 13.0Sp1 dapat diunduh dari tautan di bawah ini: ExampleFiles_nonSemiHosted.zip (altera-socfpga.ld, Makefile, reset.s)
Langkah-langkah untuk mengaktifkan aplikasi non-semi host menggunakan contoh Altera sebagai templat
- Unduh reset.o:ExampleFiles_nonSemiHosted.zip
- Salin / cadangkan skrip linker Altera Anda yang ada altera-socfpga-hosted.ld
- Ubah bendera kompilasi
Sebelum:-lcs3hosted
Setelah:-lcs3unhosted: GROUP(-lgcc -lc -lcs3 -lcs3unhosted -lcs3arm)
- Berikan komentar atau hapus bagian kode berikut:
/* Enable arm semihosting */
EXTERN(__auto_semihosting) /* force exit to be picked up in a hosted or os environment */
EXTERN (exit atexit) - Perbarui Makefile untuk mengkompile reset.o dan arahkan ke Skrip Linker yang diperbarui dari langkah 2-4
#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
Catatan: Saat mengedit Makefiles memastikan tab dan aturan Spasi yang benar akan diikuti
Masalah ini telah diperbaiki dimulai dengan SOC EDS versi 14.0