Forum: Mikrocontroller und Digitale Elektronik GCC - Startupcode und Linkerscript für STM32F103


von Daniel W. (wolfhunters)


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

von ich (Gast)


Lesenswert?

Ich hab grad was geschrieben...

Beitrag "Re: Einstieg ARM"

von Daniel W. (wolfhunters)


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?

von Martin T. (mthomas) (Moderator) Benutzerseite


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)

von Daniel W. (wolfhunters)


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?

von ich (Gast)


Lesenswert?

keine BinDatei machen, sondern eine Hex Datei...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.