www.mikrocontroller.net

Forum: Compiler & IDEs AT91SAM7S64: Wie kann ich Software im RAM starten?


Autor: Christoph Bayer (chrbayer)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

nach erfolgreicher Installation von WinARM und Inbetriebnahme
meiner HW hier aus dem Shop (AT91SAM7S64) kann ich leider
keine für RAM gelinkte Version laden, da sich gdb natürlich
weigert, meine Software in das Flash laden.
Ich muss also das RAM im Kontroller ummappen, nur wie kann ich
das mit gdb anstellen? Keins der Tutorials erwähnt etwas in der
Art...

Was mache ich falsch? Wie kann ich mein Problem lösen?

Vielen Dank im Voraus!

Autor: Danyo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christoph!

Ich kenn mich damit zwar nicht aus, aber ich hab mal gelesen, dass man
Funktionen, denen man bei Ihren Prototypendefinitionen ein
'#define __ramfunc' voran stellt, im RAM ausgeführt werden sollten.
Kannst du mir vielleicht erklären, wozu das gut sein soll? Hab das in
Board.h von einem Beispiel zu SAM7S64 gefunden, mit dem ich auch gerade
anfangen will zu arbeiten...

Danyo

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Je nach Compiler läuft das anders. Bei WinARM muss man
das zum Prozessor und der Speicherart passende Linker-Script und den
ebensolchen Startup-Code verwenden. Im Linker-Script steht drin, auf
welche Adressen Programme und Daten landen, der Startup-Code stellt das
passende Speichermapping ein.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das __ramfunc mag bei manchen Compilern verwendet werden, um das bei
ADuC/SAM7 und Co deutliche fixere RAM für ARM-Code zu verwenden. Um das
ganze Programm da landen zu lassen, ist das eher sinnlos, weil
garantiert einiges übrig bleibt, was trotzdem im ROM landet.

Autor: Christoph Bayer (chrbayer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten!

Mit dem in meinem ersten Betrag angehängten Linkerscript
habe ich jetzt die Möglichkeit, SW fürs RAM zu schreiben
und in insight ausführen zu lassen :-)
Als Kompiler verwende ich übrigens WinARM.

Mein Problem lag nicht an der Software oder dem Kompiler,
mein Wiggler Debuginterface lief einfach nicht:
Um das Debuginterface verwenden zu können, muss die SAM-BA
Applikation geflashed sein und das Board mit dem USB Kabel
zum Rechner verbunden werden, kann läuft der Wiggler Kram...

Weiss jemand, woran das liegen kann??

Jetzt kämpfe ich mit der UART, hier sagt das Board auch
noch keinen Peep....

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.