mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM Linker Scripts


Autor: Jan Haan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan Haan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was muss ich tun um vom RAM in den ROM zu springen und umgekehrt?

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan Haan (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.