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!
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.