Forum: Compiler & IDEs [EEPROM] Speicherzellen immer 0 beim Deklarieren eines Arrays?


von Bernhard N. (bernieserver)


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

von Oliver (Gast)


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

von Bernhard N. (bernieserver)


Lesenswert?

Oh sorry, habe natürlich das EESave aus. :)

Also zuverlässig?

von Oliver (Gast)


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

von zufaulzumeinloggen (Gast)


Lesenswert?

Habe ich bereits, zumindest mein AVR JTAG MK2 machts so wie ich 
beschrieb.

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.