Hallo zusammen, wie ihr im Thema schon lesen könnt ist meine Frage ob es möglich ist die erste Adresse im Ram mit einem Sprungbefehl aus dem FLASH bzw Ram aufzurufen und dort mein Programm reinzuladen? Es geht darum das ich nicht immer flashen will um meinen "wirren" Versuche zu testen^^. Wir haben bei uns in der Schule einen HC12 beim dem wir über Software"Cosmic Compiler und Zaptool" das Programm über den Ram laufen lassen können. Dort ist es sogar möglich das Programm Schrittweise durchlaufen zu lassen.
HaPe schrieb: > wie ihr im Thema schon lesen könnt ist meine Frage ob es möglich ist die > erste Adresse im Ram mit einem Sprungbefehl aus dem FLASH bzw Ram > aufzurufen und dort mein Programm reinzuladen? Bei irgend einem der unzähligen Mikrocontrollertypen dieser Welt geht sowas bestimmt. Oliver P.S. ;)
Das geht generell mit Rechnern mit einer v.-Neumann-Architektur (M68k und Konsorten), nicht aber mit Harvard-Architektur (AVR etc.). Die Frage ist dann nur, wie das Programm ins RAM kommt, wenn der Rechner nicht läuft... Das könnte z.B. geschehen, indem die Startroutinen, die für die ersten Takte nötig sind, in einem EPROM stehen und das per HW-Bastelei an den Anfang des Speicherbereichs eingeblendet wird. Mit dem Code darin wird dann (wie auch immer) das eigentliche Programm ins RAM kopiert und dann dorthin gesprungen.
Das Tool heißt vermutlich ZAP debugger [1]. ;-) Der Mikrocontroller heißt wohl 68HC12 und ist von Freescale? Da gibt es wohl den Noice12, siehe [2] und [3]. Aber warte mal, ich kenne den *gar nicht*, vielleicht meldet sich noch einer mit Erfahrungen. Mit welchem Mikrocontroller willst du denn arbeiten? Bleibt es überhaupt beim 68HC12, hier im Forum ist die AVR-Familie von Atmel recht beliebt, siehe auch AVR-Tutorial und AVR-GCC-Tutorial, ist aber natürlich deine Entscheidung. [1] http://www.cosmic-software.com/hc12.php [2] http://elmicro.com/de/noice12.html [3] http://elmicro.com/de/kit12.html
Also, mit einem ARM und JTAG via OpenOCD funktioniert das wunderbar, solange das komplette Programm halt ins RAM passt. Muss nur entsprechend gelinkt sein und der Startup Code muss leicht angepasst sein (Kopieren der .data Sektion nicht notwendig). Das dürfte dem Vorgehen mit dem HC12 ziemlich genau entsprechen inklusive dem möglichen schrittweisen Abarbeiten im Debugger. Mit einem AVR geht das nicht, da sind Daten und Instruktionen getrennt und der Instruktionsspeicher eben als Flash ausgeführt. Dafür ist ein typischer ARM Microcontroller für den Einstieg vielleicht schon etwas zu komplex.
Jawoll der ZAP debugger ^^ Nun gut dann werd ich es wohl sein lassen und nach wie vor flashen. Kostet ja auch nicht die Welt so ein "Atmega8" Danke für eure Antworten!
Mit den AVRs läuft leider kein Programm im RAM, geht aber mit ein bißchen Zusatz-HW (Jumper reichen) und einem evtl. Batteriegepufferten RAM sehr gut mit der µCs der 8051-Family. Programm ins RAM laden (Bootlader oder Programmer), Ram als externen Progspeicher konfigurieren (WR auf H, RD an PSEN) und das war's. Funktioniert einwandfrei.
Prinzipiell sollten alle Mikrorechner dazu taugen, bei denen man den Programmspeicher (ROM und RAM) extern anschließen kann. Mir fällen da sofort Z80, Z8, 8051 usw. ein.
Alter Hase schrieb: > Mit den AVRs läuft leider kein Programm im RAM, > geht aber mit ein bißchen Zusatz-HW (Jumper reichen) und einem > evtl. Batteriegepufferten RAM sehr gut mit der µCs der 8051-Family. > Programm ins RAM laden (Bootlader oder Programmer), Ram als externen > Progspeicher konfigurieren (WR auf H, RD an PSEN) und das war's. > Funktioniert einwandfrei. Richtig. Aber wer AVRs programmiert und auf die Idee kommt, Programme aus dem RAM laufen zu lassen, der wird mit einer weiteren MC-Architektur erstmal nicht viel anfangen können. Der hat vorerst noch genug betreffs AVRs zu lernen. ...
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.