hi leute ich hätte da mal ne frage. und zwar geht es darum, dass ich einen kompilierten Code (in C51 geschrieben) auf dem T89C51RD2 von Atmel ausführen möchte, welches ich aber zuvor über eine I2C-Schnittstelle von dem AT24C64 gelesen habe. Ist dies eigentlich möglich, oder bekomme ich da probleme mit dem Adressbereich des kompilierten Codes? gruss gökkes
Ungefähr so, wird es auch von Monitor-Programmen gemacht. Die kopieren das ganze in ein ext. Ram. "Ist dies eigentlich möglich, oder bekomme ich da probleme mit dem Adressbereich des kompilierten Codes?" Dein Problem liegt dann darin, das der T89C51RD2 nur 64kB Code und 64kB Ram verwalten kann. Und da er ja schon 64kB Flash-Code Speicher hat....... Somit müßtest du zur Laufzeit, den /EA Pin umschalten (auf Low) und einen Reset ausführen. Das ext. Ram muß dann auch mit /PSEN verknüpft sein. Mfg Sascha
ich kann es mir nicht erlauben zur Laufzeit einen Reset auszuführen. Muss irgendwie anders gehen, oder? mfg gökkes
Der EA-Pin wird nur beim Reset abgefragt, hier hast Du also keine andere Möglichkeit! Du könntest aber die ganze Zeit über im externen Programmspeicher arbeiten: Sprich am Anfang ein kleines Programm, welches einen Teil vom FLASH ins externe RAM kopiert, dann die EA-Leitung umschalten und nen Reset auslösen. Hier jetzt das normale Programm ausführen. Teile davon könntest Du jetzt gegen Codestücke aus dem EEPROM austauschen. Sollte so gehen, veil Erfolg, Markus_8051
ich hab keine möglichkeit im externen speicher code auszuführen,wie soll das denn gehen? mfg gökkes
Indem Du die PSEN-Leitung als Chip-select-Leitung für den externen Programmspeicher verwendest! Wie hast Du das sonst vor, ohne einen externen Programmspeicher? Hat der T89C51RD2 die Möglichkeit, sich selbst während des Betriebs zu flashen? Gruß, Markus_8051
Du must Dir einen Bootloader schreiben, der überprüft, ob der Inhalt im Flash schon gleich dem EEPROM ist. Wenn nicht, überprüft er, ob im EEPROM eine gültige Kennung steht und die CRC stimmt und dann kopiert er den EEPROM in den Flash. Zum Kopieren rufst Du dann die API-Funktionen im Factory-Bootloader auf. 8kB reicht zwar für vieles, aber ich würde gleich einen 24C256 (32kB) nehmen. Peter
Das mit EA geht nicht ! Beim AT89C51Rxx ist standartmäßig EA deaktiviert. Er lässt sich nur durch einen kompletten Chip Erase aktivieren. Chip Erase ist aber nicht das was Flip macht, sondern anscheinend nur mit einem parallel Programmer möglich...
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.