Ich will das Programm inkl. EEPROM eines ATMega32 auf einen zweiten ATMEGA32 kopieren. Ich habe ein STK500 und habe schon alles was mir dazu eingefallen ist ausprobiert. Jeweils aus dem alten ATMega32 lesen und dann in den neuen ATMega32 schreiben 1. Flashinhalt lesen -> schreiben 2. EEPROM Inhalt lesen -> schreiben 3. Fuse- und Control-Bits lesen -> schreiben Leider bringe ich keinen der neuen ATMegas zum Laufen. "Beruhigend" ist dabei, dass ich es mit mehreren Prozessoren versucht habe und den selben Effekt bekam. Ich will den Alten ersetzen, da er offensichtlich einen Defekt an einem Port hat. Leider habe ich die passenden Sourcen nicht mehr. Besten Dank für Eure Hilfe.
Sind in dem alten Proz die Lock Bits gesetzt, dann kannste dir die 1:1 Kopie abschminken. Nach dem auslesen mal in das Hex bzw. BIN File schauen, wenn da nur son Müll drinn steht wie 00 01 02 03 04 05 usw. ist der Prozessor gelockt. gruß, Bjoern
Hallo Bjoern, Lock Bits sind nicht gesetzt. Der alte Prozessor ist ja auch von mir programmiert worden. Grüße Manfred
Die Fuses wirst du wohl eher manuell einstellen / "kopieren" müssen. Bei den anderen beiden Speichern solltest du den Umweg über eine Datei gehen. Wenn das auch nicht geht, wird deine Zielschaltungen einen an der Waffel haben...
dann schau dir mal das ausgelesenen File an ob da überhaupt was drinsteht was nach Programm auschaut, kannst dir ja die Opcodes mal anschauen und vergleichen
kompilier doch neu und flash dann den 2. controller. auf die einfachsten dinge kommen die leute meist werd durch nen kleinen stupser... :)
er hat ja den Quellcode seines eigenen Programmes nicht mehr zum neukompilieren ;-) zeig mal her dein ausgelesenes .hex File
schaut in Ordnung aus, nicht das du was auf dem STK500 falsch gejumpert hast oder die Taktquelle nicht die richtige ist.
Gleich Vorweg: Ich kenn mich da nicht so gut aus. Aber ist das normal, dass der Disassambler immerwieder zwischendrin einzelne Bytes mit "Data or unknown opcode" hat? Oder hast du damals so verstreut Datenbytes im Programm gehabt? Ich setzt meine Daten normalerweise immer schön am Stück. Sebastian
Ah, ich weiss warum. Das sind schon zusammenhängede Daten, aber die Daten werden vom Disassambler als Opcode interpretiert und für die meisten der Hexwerte gibts wohl einen passenden Opcode, sodass nur vereinzelt Daten nicht interpretiert werden.
Jetzt nur noch rein interessehalber, das Problem hat sich ja gelöst: Ich hab das vom AVR-Studio disassamblen lassen. Der kennt schon alle Befehle des AVR Assamblers, oder? Du verwirrst mich irgendwie. @Manfred Entschuldige bitte die Neugier, aber was hat das Programm eigentlich gemacht? Schaut aus wie für ein Chemiewerk. Sebastian
sorry das AVR-Studio kann ja auch disassamblen. Dachte du hättest das mit nem normalen Disassembler gemacht. Habe gerade auch ein Hex-File durchgejagt und solche Meldungen nicht gefunden, kann es sein das du den falschen AVR gewählt hast, weil ja bei manchen Typen einige Befehle fehlen und es AVR-Studio dann vielleicht falsch anzeigt.
Hab "Data or unknown opcode" doch noch gefunden dort wo einfach nichts im Flash steht erscheint das.
Du solltest beim Ziel Mega32 auch noch darauf achten, ob du die Fuses für Taktsource (internal, Quarz, externalClock), prescaler (CKSEL0..3), etc richtig gesetzt hast.
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.