GCC - Startupcode und Linkerscript für STM32F103

OP #933442
Lesenswert?

Hallo

Ich bin auf der Suche nach einen Startupcode + Linkerskript für einen 
STM32F103 Microcontroller. Wichtig dabei ist, das ich im Linkerscript 
den Stack und Heap frei konfigurieren kann. Da ich leider nicht sehr 
viel Ahnung von Linkerscripten und Assembler-Startupfiles habe, kann mir 
vielleicht hier jemand helfen.
Als Toolchain nutze ich die SARM-Toolchain von ST mit dem gcc Version 
4.2.3
OP #934953
Lesenswert?

Hast du denn schon ein funktionierendes Beispiel, außer das 
Blinky-Programm? Ich habe mir jetzt mühevoll ein Startupcode + 
Linkerscript zusammengestellt bzw. gesucht. WEnn es natürlich auch ohne 
geht, wäre ja besser. Wo kann ich den da Stack und Heap einstellen? 
Brauche ich denn auch gar kein Linkerscript mehr?
Moderator Persönliche Seite #934983
Lesenswert?

Diverse Beispiele für STM32 Anglia Idealist und SARM (Codes im 
Idealist-Packet, Linker-Scripte zumindest teilweise im SARM-Packet). 
Assembler-Startupcode wird bei Cortex-M3 nicht benötigt, ein etwas 
angepasstes Linkerscript schon. Betr. Stack: siehe Cortex-M3 Manual, 
erstes Element im vector-table. Betr. Heap: Implementierungsabhängig. 
Üblicherweise wird per linker-script ein Symbol "end" definiert, ab dem 
die Speicherverwaltung den heap started (bei newlib vgl. sbrk syscall 
Beispielimplementierungen und deren Verhalten beim ersten Aufruf)
OP #935588
Lesenswert?

so, ich habe jetzt versucht, anstatt des Assambler Startupcodes die 
Vectortabelle zu nutzen. Hier habe ich die Linkerscripte und 
Vectortabelle von RAISONANCE 2007 genommen, die ich hier gefunden habe. 
www.st.com/mcu/forums-cat-6304-23.html
Leider habe ich jetzt das Problem, dass scheinbar alles compiliert, 
gelinkt und zu einer .bin Datei gemacht wird, aber die .bin ist zwischen 
400 - 500MB groß. Also muss da noch ein Fehler drin sein. Wenn ich die 
Datei analysiere mit einem Hex-editor, dann ist der eigentliche Code in 
den ersten ca 85kb (so groß ist der auch mit der Startupcodevariante 
gewesen), aber dann wird der Rest mit Nullen aufgefüllt und am Ende 
erscheinen noch ein paar Zeichen, die wahrscheinlich den "Abschluss" der 
Datei darstellen. Wie aber komme ich jetzt zu einer Datei, die dem 
wirklichen Umfang entspricht?

Hat jemand eine Idee?

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