Forum: Mikrocontroller und Digitale Elektronik ARM Linker Scripts


von Jan Haan (Gast)


Lesenswert?

Hallo,
ich habe die Linker Scripts für WinARM bzw GNU-ARM noch nicht so ganz
verstanden:
Wenn ich z.B. für den ARM uC ein C-Programm schreiben will, dass
Software von einer MMC/SD Karte in einen RAM ließt, und dann im RAM die
Adresse x aufrufen soll, wie muss das entsprechende Script dann grob
aussehen?
Wenn ich jetzt ein C-Programm für die MMC/SD Karte schreibe, was vom uC
kopiert und dann ausgeführt wird, wie muss dafür das Linker Script grob
aussehen?
Ist die Methode, die Programme getrennt zu schrieben (2x main(), 2x
kompilieren), oder sie "als ganzes" zu schreiben (1x main(), 1x
kompilieren) eurer Meinung nach besser?

MfG
Jan Haan

von Jan Haan (Gast)


Lesenswert?

Was muss ich tun um vom RAM in den ROM zu springen und umgekehrt?

von mthomas (Gast)


Lesenswert?

Im Linker Skript "grob": RAM-Startadresse einstellen, alle Sections in
die "RAM-section". Startadresse so einstellen, dass fuer
"Bootloader/Applikationslader" benoetigtes RAM nicht ueberschrieben
wird und evtl. noch Platz fuer Exceptions-Vectoren/Sprungadressen im
RAm (remap) lassen. Startup-Script des nachgeladenen Anwendung muss
auch angepasst werden. Interrupts dann am besten nur ueber SWIs und die
noetigen "Betriebssystemroutinen" im "Anwendungslader"-Code
integrieren. Ansonsten Exceptions-Vector im RAM beim Starutp der
nachgeladenen Anwendung ueberschreiben, ist aber weniger elegant und
auch fehleranfaellig. Bootloader und Anwendungen getrennt
compilieren/linken sollte die bessere Methode sein - wenn die andere
ueberhaupt funktioniert. Sprung zu Anwendung im einfachsten Fall ueber
PC-"umbiegen". Auf die verschiedenen Stacks achten.

Martin Thomas

von Jan Haan (Gast)


Lesenswert?

Kennnt jemand ne gute Quelle, wo steht, was der Compiler/Linker
standartmäßig für Sektionen (.text, .data, etc) wofür verwendet?

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.