Forum: Mikrocontroller und Digitale Elektronik Linkerscript und Startupcode für Cortex M3/M4


von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

Hallo hallo,

habe schon lange nichts mehr mit Mikrocontrollern gemacht, aber nun will 
ich endlich die Firmware für mein GPS-Frequenznormal fertig schreiben. 
Eine ziemlich übelst verbastelte Version habe ich zwar bereits und das 
Frequenznormal läuft nun schon ein paar Tage und hat sauber die Frequenz 
geloggt, insofern Ziel erreicht, ABER ich will es nun noch sauber machen 
und ein paar zusätzliche Features implementieren.

Äh, da war doch mal was mit einem Linkerscript und Startupcode...
ich hab beides mal angehängt. Es sind uralte Files, von denen ich keine 
Ahnung mehr habe, wo ich die abgekupfert habe. Im grossen und ganzen 
funktioniert es auch - aber ist auch alles korrekt implementiert?

Ich befürchte nein, z.B. suggeriert die crt0.S, dass der Heap eine 
Grösse von 0x100 haben soll - aber wenn im Code nun irgendwo ein 
malloc() auftaucht, dann bekomme ich die Linkerfehlermeldung "Region RAM 
overflowed....". Ohne malloc() geht es. Also ist schon mal irgend etwas 
nicht koscher.

Im Endeffekt werde ich für dieses Projekt jetzt zwar malloc() nicht 
nutzen, insofern ist mir der Heap egal, aber es stört mich trotzdem, 
dass da was nicht stimmen kann. Wo liegt denn nun der Heap wirklich, und 
wie gross ist er, und wo liegt der Stack wirklich und wie gross ist er? 
Die LD-Syntax ist mir leider nicht so geläufig.

ach ja, das hier soll vorerst einmal auf einem STM32F303K6T6 laufen.

: Bearbeitet durch User
von Johnny B. (johnnyb)


Lesenswert?

An Deiner Stelle würde ich mir die beiden Files mit STM32CubeMX von ST 
erzeugen lassen und dann diese nehmen oder sie mit Deinen vergleichen.

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.