Hallo, an meinem AT91RM9200 hängen 32 MB SD-RAM und eine SD-Karte, "normales" Flash habe ich mir gespart. Nun würde ich gerne mit dem OCD das Programm ins externe RAM laden und später mit einer Funktion im internen Flash in die SD-Karte kopieren. Später sollte der Bootloader nur noch das Programm zurück in das RAM kopieren. Kann das der OpenOCD? Da das Atmel-Demoboard mit viel mehr RAM als Flash ausgestattet ist (32 MB - 4 MB), sollte es ja gehen, oder? Vielen Dank im Voraus, Bernhard
Hallo Bernhard, das 9200 hat AFAIK kein internes Flash, wenn ich falsch liege bitte aufklären. Somit wird dein Plan, wenn ich mich nicht irre, nicht funktionieren. Du könntest ins RAM ein Programm ablegen, dass die Daten aus dem Speicher (oder über DCC / UART o.ä.) nimmt und dann auf die SD Karte schreibt. Gruß Jörn
Hallo Jörn, der AT91RM9200 hat 128 kb "Fast ROM", also Flash. Zumindest am Anfang würde ich mir den Weg über UART->SD-Karte->Bootloader gerne sparen, sondern einfach laden und prüfen. Variablen aus dem RAM sollte der OCD ja auslesen und beschreiben können, also sollte es ja pronzipiell gehen. Viele Grüße, Bernhard
Hallo Bernhard, Du kannst mit dem OpenOCD das RAM schreiben und lesen, sofern du zuvor den SDRAM Controller und die PLL initialisierst. Das "Fast ROM" des AT91RM9200 is definitiv nicht programmierbar, zumindest ist keine Möglichkeit zur Programmierung dokumentiert. Gruß, Dominic
Der AT91RM9200 hat definitiv kein Flash. Er hat ein internes ROM (wirklich read-only, kein Flash), in dem ein fester Bootloader abgelegt ist. Dieser sucht nach dem Reset nach einem externen Flash und kopiert eine feste Anzahl Bytes in das interne RAM (160kB). Dann wird der Speicher "umgemappt" und zum Anfang des RAM gesprungen. In der Regel ist der Bootprozess mehrstufig, d.h. in dem externen FLASH, meist ein kleines Data-Flash, wird ein zweiter Bootloader abgelegt, der dann seinerseits den externen Speicher (SDRAM, SD-Karte, großes paralleles Flash etc.) initialisiert und das eigentliche Hauptprogramm in das SDRAM lädt. Findet der interne Bootloader des AT91RM9200 keinen externen Bootloader in einem angeschlossenen Speicher, springt er in eine Routine, die ein Programm über die serielle Schnittstelle herunterlädt. Dies ist auch der Ansatz für das Bootstrapping eines neuen ("leeren") Systems.
Danke für eure Antworten. @ Oliver Döring Mit deinem Tipp hast du mir einen Haufen Arbeit erspart, ich hätte auch geneauer / weniger optimistisch auf das Datenblatt schauen können. Welchen UART-Loader nehme ich am Besten für den internen Bootloader? Ghet das automatisiert mit Eclipse und OpenOCD als "Resetter"? Kann ich den AT91RM9200 auch standalone mit dem internen RAM betreiben? Nur als Notlösung, wenn anfangs erst mal gar nichts geht. Vielen Dank, Bernhard
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.