ARM Cortex-M4 --- Compilieren/Linken ---

OP (Firma: Angestellter/Freelancer) #2853933
Lesenswert?

Hallo liebe Leser,

ich brauche eure Hilfe um mein Projekt zu kompilieren/linken.
Also ich besitze folgende Dateien in meinem Ordner:
-main.c
-startup.S
-linkerskript.ld
-gpio.h  //Header mit allen µC-spezifischen Defines

-core_cm4.h
-core_cm4_simd.h
-core_cmInstr.h
-core_cmFunc.h


Die ARM-Toolchain ist eingerichtet (arm-none-eabi-gcc-4.7.2)!
Ich habe einen Cortex-M4, also nehme ich die Einstellungen:
>>arm-none-eabi-gcc-4.7.2 -mcpu=cortex-m4 -mthumb -I./ -c -o main.o main.c
>>arm-none-eabi-gcc-4.7.2 -mcpu=cortex-m4 -mthumb -I./ -c -o startup.o startup.o

Und nun weiß ich nicht wie ich den Linker korrekt aufrufe mit allen 
Extras!
Bzw. ist oben schon was falsch?

PS: Gibt es gute Literatur/Websites zum Thema gcc bzw. ARM?
Persönliche Seite #2854249
Lesenswert?

James Bonddraht schrieb:

> Die ARM-Toolchain ist eingerichtet (arm-none-eabi-gcc-4.7.2)
> Ich habe einen Cortex-M4, also nehme ich die Einstellungen:
>>arm-none-eabi-gcc-4.7.2 -mcpu=cortex-m4 -mthumb -I./ -c -o main.o main.c
>>arm-none-eabi-gcc-4.7.2 -mcpu=cortex-m4 -mthumb -I./ -c -o startup.o startup.o

Nö:

>>> ... -c -o startup.o startup.S

> PS: Gibt es gute Literatur/Websites zum Thema gcc bzw. ARM?

Für GCC list du das GCC-Manual.  Auch wenn du es nicht "gut" findest ist 
es ein Muss:

http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/

Zur Angabe des ld-Skripts beim Linker findest du dann unter "3.13 
Options for Linking" -T:
1
arm-none-eabi-gcc-4.7.2 -mcpu=cortex-m4 -mthumb -o main.elf startup.o main.o -Tlinkerskript.ld ...
OP (Firma: Angestellter/Freelancer) #2854316
Lesenswert?

Johann L. schrieb:
> Für GCC list du das GCC-Manual.  Auch wenn du es nicht "gut" findest ist
> es ein Muss:

Danke für deine Antwort.

Die Doku finde ich schon sehr informativ, nur leider kann man nicht 
abschätzen welche Optionen nur für den Spezialisten sind und welche ich 
benötige. Eine Übersicht über häufige Optionen würde ich begrüßen.
Gast #2854405
Lesenswert?

Hallo,
ich arbeite mich im Moment auch tiefer in die Materie ein.
Ich würde dir empfehlen entweder eclipse mit GNUARM, oder atmel studio 6 
zu installieren, dort kannst du jeweils schauen wie die das build 
aufrufen und welche optionen als optional wichtig angesehen werden.

bei eclipse projekt erstellen dann unter proberties C/C++ buld unter 
settings einfach mal reinschauen.
ATMEL STUDIO 6 weiß ich es gerade nicht hab ich an der Arbeit.
Gast #2854518
Lesenswert?

Schon einmal daran gedacht eine IDE zu verwenden?
Da brauchst du dich nicht mit linkerscripts und diversen herumschlagen.
Gibts natürlich kommerzielle (teure), aber auch z.B. eine freie.
Nämlich CooCox IDE, ist gerade eine neue Version herausgekommen, die den 
STM32F4xx besser unterstützt.
Gast #2855353
Lesenswert?

Ich fürchte so als "Quereinstieg" wird das nichts.
Am Besten arbeite erst einmal meinen link von oben durch.

Alternativ ist evtl. wirklich eine IDE die bessere Wahl für dich.

Woher hast Du die Dateien in deinem Verzeichnis? Da war sicher noch 
mehr.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren