AT91SAM7S64: Wie kann ich Software im RAM starten?

OP #283956
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!
Angehängte Dateien:
Gast #283957
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
Gast #283958
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.
Gast #283959
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.
OP #283960
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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.