Hallo, ich habe ein Problem. Ich benutze ein Atmega32. Ich möchte im EEPROM Daten speichern diese sollen niemals wieder gelöscht werden. Ich möchte also mein Device mit einer Firmenware Programmieren aber den Inhalt des EEPROM möchte ich nicht verändern (bestimmte bereiche). Ich benutze den avrdude zum Programmieren. Ich dachte mich einfach das Automatische Chiperase rauszunehmen (-D). Das Funktioniert auf den ersten blick ganz gut. Will ich dann aber ie anderes hex file Flashen kommt es immer zu einem Verify Error an der Stelle 0x000e. Und der Code funktioniert nicht! avrdude.exe -p m32 -c stk200 -P lpt1 -U flash:w:main.hex:i -U flash:v:main.hex:i -D Wer kann mir ein Tip geben. Gruß Dennis
Die -D option bedeutet, dass das Flash vor dem Programmieren nicht gelöscht wird. Es ist klar, dass dann ein Verify-Error eintritt, denn Bits können nur von 1->0 programmiert werden. 0->1 geht nur durch Löschen. Versuche, das EEprom vor dem Chip erase auszulesen und danach wieder reinzuschreiben. Entweder mit mehreren Kommandos in der Befehlszeile oder mit einem .bat-File, das den AVRDUDE mehrmals aufruft. Lass uns wissen, ob es so geht.
Der Mega32 hat eine Fuse, die das Löschen des EEPROMS beim Flashen verhindert.
Danke das wars. Einfach des EESAVE Bit setzen. Damit unterbindet man das bei einem Chip Erase der EEPROM gelöscht wird.
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.