Forum: Mikrocontroller und Digitale Elektronik EEPROM beim Flashen nicht überschreiben


von Dennis (Gast)


Lesenswert?

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

von Jemand (Gast)


Lesenswert?

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.

von TravelRec. (Gast)


Lesenswert?

Der Mega32 hat eine Fuse, die das Löschen des EEPROMS beim Flashen
verhindert.

von Dennis (Gast)


Lesenswert?

Danke das wars. Einfach des EESAVE Bit setzen. Damit unterbindet man das
bei einem Chip Erase der EEPROM gelöscht wird.

von TravelRec. (Gast)


Lesenswert?

Genau so :-)

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
Noch kein Account? Hier anmelden.