Aufgrund eines Problems in Altera SOS EDS Version 13.0 und 13.1 fehlt der Assembler-Code, der zum Erstellen einer nicht halb gehosteten Anwendung erforderlich ist.
Um dieses Problem zu umgehen, führen Sie die folgenden Schritte aus, um die erforderliche Assembler-Datei herunterzuladen und dann Ihr Linker-Skript zu aktualisieren, um Semi-Hosting zu deaktivieren.
Ein Beispiel-Makefile- und Linker-Skript basierend auf dem Altera-SoCFPGA-HardwareLib-GNU.gz-Beispiel von SOC EDS 13.0Sp1 kann über den folgenden Link heruntergeladen werden: ExampleFiles_nonSemiHosted.zip (altera-socfpga.medina, Makefile, reset.s)
Schritte zur Aktivierung nicht-halb gehosteter Anwendungen unter Verwendung Altera Beispiels als Vorlage
- Download reset.o:ExampleFiles_nonSemiHosted.zip
- Kopieren/sichern Sie Ihr bestehendes Altera-Linker-Skript altera-socfpga-hosted.fpg.
- Kompilierungs-Flag ändern
Bevor:-lcs3hosted
Nach:-lcs3unhosted: GROUP(-lgcc -lc -lcs3 -lcs3unhosted -lcs3arm)
- Kommentieren oder entfernen Sie die folgenden Codeabschnitte:
/* Enable arm semihosting */
EXTERN(__auto_semihosting) /* force exit to be picked up in a hosted or os environment */
EXTERN (exit atexit) - Aktualisieren Sie Makefile, um reset.o zu kompilieren, und zeigen Sie auf das aktualisierte Linker-Skript aus Schritten 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
Hinweis: Bei der Bearbeitung von Makefiles stellen Sie sicher, dass die richtigen Registerkarten- und Platzregeln befolgt werden
Dieses Problem wurde ab Der SOC EDS Version 14.0 behoben