[EEPROM] Speicherzellen immer 0 beim Deklarieren eines Arrays?

OP #2054935
Lesenswert?

Hallo,

ich deklariere in AVR Studio ein Array in einem EEPROM folgendermaßen:

uint32_t EE_MemoryPartition[512] EEMEM

Ich habe mir dann mal nach Hochladen den Speicherbereich angeschaut und 
festgestellt, dass dort alles mit Nullen voll ist - genau so wie ich es 
brauche.

Nur wie zuverlässig ist das?

Kann man sich darauf verlassen, dass es immer so ist? Oder würdet Ihr 
das Array mit einer Schleife noch zusätzlich manuell mit Nullen füllen?


Gruß
Bernhard
Gast #2054995
Lesenswert?

Radio Eriwan - es kommt darauf an, wie die EESAVE-Fuse steht.

Bei nicht gesetzter Fuse wird bei einem Chip-Erase vor dem programmieren 
auch das EEPROM gelöscht, bei gesetzter Fuse nicht. Beides sehr 
zuverlässig ;)

Oliver
Gast #2055078
Lesenswert?

Bernhard N. schrieb:
> Also zuverlässig?

Guggst du ins Datenblatt. Mit gesetzer EESAVE-Fuse steht nach Chip-Erase 
das drin, was vorher auch drin stand, ohne EESAVE-Fuse steht 0xFF drin, 
wie im gelöschten Flash auch.

Wenn dein Programmer beim "Hochladen" auch das EEPROM schreibt, dann 
steht 0x00 drin. Lezteres unabhängig von der EESAVE-Fuse, da das EEPROM 
ja überschrieben wird.

Such dir was aus. Und schau nach, was dein Programmer bzw. dein 
Flash-Skript tatsächlich macht.

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren