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


von Christoph B. (chrbayer)


Angehängte Dateien:

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!

von Danyo (Gast)


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

von A.K. (Gast)


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.

von A.K. (Gast)


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.

von Christoph B. (chrbayer)


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....

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.