M25P16 Flash, Verständnisfrage

OP #4553914
Lesenswert?
• ▲
▼
Hallo Zusammen,

ich versuche gerade zu verstehen wie ein Flash-ROM funktioniert und bin 
etwas verwirrt. Konkret habe ich hier den M25P26 über SPI an einem 
STM32F103 hängen.
Mittlerweile habe ich verstanden, dass der Speicher in Sektoren und 
Pages aufgeteilt ist. Und das ich nur Pages beim Beschreiben adressieren 
kann.
Aber ich finde keine Möglichkeit einen Wert im Speicher zu ändern, ohne 
dabei gleich einen ganzen Sektor zu löschen. Aber wenn ich nur einen 
Wert anpassen möchte, müsste ich dafür doch den ganzen Sektor 
zwischenspeichern.
Ist das richtig, oder habe ich etwas übersehen?

Wenn das tatsächlich so ist, gibt es alternativen um einige KB nicht 
flüchtig zu speichern?

Danke und Gruß
Rainer
#4553936
Lesenswert?
• ▲
▼
Einen Wert im Flash Speicher kann man auf drei Arten ändern:

1. Sektor auslesen, Daten ändern, Sektor löschen, Daten zurückschreiben
2. Sektor/Page in anderen Sektor/Page kopieren und dabei Änderungen 
vornehmen
3. Unter Berücksichtigung dass man Bits von 1 auf 0 programmieren kann: 
Page lesen, ändern, zurückschreiben.

Löschen bedeutet vereinfacht dass alle Bits wieder auf 1 gesetzt werden 
(abhängig von der Flash Technologie). Man kann somit immer von 1 auf 0 
programmieren ohne löschen zu müssen.
OP #4553965
Lesenswert?
• ▲
▼
Schluckauf schrieb:
> 24C64
Danke, werde ich mir auch anschauen. Glaube ich habe da so etwas in der 
Kiste liegen.

Juergen P. schrieb:
> 3. Unter Berücksichtigung dass man Bits von 1 auf 0 programmieren kann:
> Page lesen, ändern, zurückschreiben.
Das klingt schon mal Interessant, aber wie das funktioniert verstehe ich 
nicht.

Ich habe bemerkt, dass wenn ich einen Wert einfach zu überschreiben 
versuche an der Stelle im Flash plötzlich einfach eine 0 auftaucht.
 Also z.B. ich schreibe in die Page 0 den Wert 2 und schreibe 
anschließend in die Page den Wert 253, dann wird aus der 2 nicht die 253 
sondern eine 0. Diese 0 kann ich aber nicht mehr ändern.

Kann mir das jemand vielleicht erklären?

Danke und Gruß
Rainer

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.