Forum: Compiler & IDEs Wofür die Startup.S beim ARM-GCC???


von Mork (Gast)


Lesenswert?

Hallo,

kann mir jemand erklären, wieso ich für jedes ARM-Projekt eine ASM-Datei 
Startup.S brauche? Was steht in ihr so besonderes drin, dass es nicht 
ohne sie geht?

freue mich über jede Antwort

MfG Mark

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die brauchst Du auch bei anderen C-Compilern. Sie enthält den -wie der 
Name bereits suggeriert- Startup-Code, der den µC und dessen Speicher 
initialisiert und dann main() aufruft.

von Mork (Gast)


Lesenswert?

Aber wieso kommen dann AVRs ohne aus?

MfG mark

von Mario (Gast)


Lesenswert?

Der ARM Controller ist etwas mächtiger im Funktionsumfang als die AVRs. 
Da gibts den Thumb und den ARM mode, auch Little/Big Endian muss 
eingestellt werden.
Kompliziert wirds dann mit den Interrupts in Verbindung mit den Modes, 
allokation des Stack-Pointers, PLL-Configuration, etc.

Ich muss hier allerdings einräumen dass mein Wissen hier sehr dünn ist. 
Das ist nur das was ich bemerkt habe als ich verschiedene Demos zu einem 
Projekt zusammenzufassen wollte. Jedes Demo hat seinen eigenen 
Startup-code.
Eine sehr lästige Sache, mal heissen sie crt.S, mal Startup.S. Wäre das 
nicht wäre der ARM aufgrund der vorhandenen Beispiele sehr einfach zu 
handhaben, einfacher als etwa PIC's (mit seinen vielen kleinigkeiten) 
und AVR's.

Mario

von A.K. (Gast)


Lesenswert?

Kein Controller kommt ohne aus. Nur gibt es bei den AVRs darin weniger 
zu tun, und das was zu tun ist gilt für alle AVRs gleichermassen. 
Weshalb es in der Library steckt.

Bei ARMs hingegen ist die Vielfalt gross und von Familie zu Familie muss 
darin etwas anderes getan werden. Irgendwelche Speicherinterfaces 
initialisierten, den ARM-Core und ggf. Caches und Puffer konfigurieren, 
Adressräume und -Mappings einstellen, uvam. Und weil das so vielfältig 
ist und WinARM sich nicht auf einen Hersteller beschränken will, ist das 
so offen gestaltet.

von Mork (Gast)


Lesenswert?

Danke für die Infos.

MfG Mark

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.