เนื่องจากปัญหาใน Altera SOS EDS เวอร์ชั่น 13.0 และ 13.1 รหัส Assembler ที่จําเป็นในการสร้างแอปพลิเคชันที่ไม่ใช่โฮสต์ขาดหายไป
หากต้องการแก้ไขปัญหานี้ ให้ทําตามขั้นตอนด้านล่างเพื่อดาวน์โหลดไฟล์ Assembler ที่จําเป็นแล้วอัปเดตสคริปต์ลิงก์เกอร์ของคุณเพื่อปิดใช้งานการโฮสต์แบบกึ่ง
ตัวอย่างสคริปต์ Makefile และ Linker ที่อิงจากAltera-SoCFPGA-HardwareLib-GNU.tar.gz จาก SOC EDS 13.0Sp1 สามารถดาวน์โหลดได้จากลิงก์ด้านล่าง: 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) - Update Makefile เพื่อคอมไพล์ reset.o และชี้ไปยังสคริปต์ Linker ที่อัปเดตแล้วจากขั้นตอนที่ 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
หมายเหตุ: เมื่อแก้ไข Makefiles ให้มั่นใจว่ามีการปฏิบัติตามกฎแท็บและพื้นที่ที่ถูกต้อง
ปัญหานี้แก้ไขเริ่มต้นด้วย SOC EDS เวอร์ชั่น 14.0