arm variable in flash lesen/schreiben

Gast #4525960
Lesenswert?

Hacker R. schrieb:
> wie schreibe ich jetzt auf meine variable?

Da musst du dich wohl mal mit dem Datenblatt des SAM D10 beschäftigen,
genauer: Mit dem Non-Volatile Memory Controller (NVMCTRL) S.349 ff

Datenblatt: 
http://www.atmel.com/images/atmel-42242-sam-d10_datasheet.pdf

Der NVMCTRL ermöglicht eine EEPROM-Emulation, allerdings muss man dazu 
den Controller entsprechend bedienen und man kann (anders als bei echtem 
EEPROM)
nicht einfach Datenworte überschreiben, sondern muss eine Row (= 4 
Pages) löschen, bevor man sie neu beschreiben kann.
Wenn also mehrere Variablen dort liegen, müssen die Daten zuvor 
eingelesen, verändert und wieder geschrieben werden.
Gast #4525983
Lesenswert?

Einschaltvorgänge zu zählen geht villeicht gerade noch mit der 
EEPROM-Emulation. Wenn du öfter schreiben willst, würde ich ernsthaft 
über ein externes EEPROM bzw. besser gleich ein FRAM nachdenken.
Die lassen sich über I2C-Bus oder per SPI anschließen und Wortweise 
umprogrammieren.
Das FRAM hat ggü. EEPROM noch den Vorteil, daß es keine 
Schreibzyklen-Begrenzung hat, und daß man keinen BUSY-Handshake beim 
Schreiben benötigt, da das Teil so schnell geschrieben, wie gelesen 
werden kann.

Geeignet für den SAM wären 3V-Typen wie z.B. von Cypress
FM24CL64 (I2C) oder FM25CL64 (SPI)
#4526195
Lesenswert?

Hi
Danke für die Antworten.


>> Mit dem Non-Volatile Memory Controller beschäftigen:Also wenn ich variablen 
habe dessen Werte bei Stromausfall bestehen sollen, habe ich keine andere 
möglichkeit als diesen Weg richtig? Abgesehen von hardware Erweiterung mit 
externer FRAM/EEPROM.

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