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
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.