Forum: Mikrocontroller und Digitale Elektronik Reihenfolge beim Löschen eines Flashspeichers


von Hans F. (snuff)


Lesenswert?

Hallo Community

Ich habe eine etwas speziellle Frage. Ich nutze einen externen 
Flashspeicher für einen Mikrocontroller. Wenn ich einen Löschvorgang 
starte (sektorweise oder gleich den gesamten Speicher), kann ich da 
irgendwie feststellen, in welcher Reihenfolge die Speicherplätze 
gelöscht werden? Werden sie einfach in aufsteigender Reihenfolge 
gelöscht oder ist dieser Prozess rein zufällig und überhaupt nicht 
kontrollierbar?

Danke und liebe Grüsse

von holger (Gast)


Lesenswert?

>Wenn ich einen Löschvorgang
>starte (sektorweise oder gleich den gesamten Speicher), kann ich da
>irgendwie feststellen, in welcher Reihenfolge die Speicherplätze
>gelöscht werden?

Nein.

von Dr. Sommer (Gast)


Lesenswert?

Die werden alle gleichzeitig gelöscht; das ist die besondere Eigenschaft 
des Flash Speichers. Könnte man die Zellen einzeln löschen, wäre das für 
die Programmierung einfacher und der Baustein würde dies ermöglichen. Es 
geht aber eben nicht,  bzw. nur bei teurerem Speicher mit kleinen Pages 
oder NOR-Flash.

von Hans F. (snuff)


Lesenswert?

Um Missverständnisse zu vermeiden hier eine kleine Ergänzung:
Mir ist bewusst das mit einem Löschbefehl mehrere Bytes bzw. ein Sektor 
gleichzeitig gelsöcht wird.

Mir geht es um folgende Frage: Wenn während des Löschvorgangs der Strom 
getrennt wird, wo muss ich dann noch mit "Restdatenmüll" rechnen?

Deshalb die Frage bezüglich der "Löschreihenfolge".

Könnte ich also beispielsweise davon ausgehen, dass beim Ausfallen der 
Versorgungsspannung während eines Löschvorgangs am Ende des Sektors noch 
korrekte daten zu erwarten sind oder ist diese Überlegung grundlegend 
falsch?

Danke und mfg

von holger (Gast)


Lesenswert?

>Könnte ich also beispielsweise davon ausgehen, dass beim Ausfallen der
>Versorgungsspannung während eines Löschvorgangs am Ende des Sektors noch
>korrekte daten zu erwarten sind oder ist diese Überlegung grundlegend
>falsch?

Ja, die Überlegung ist falsch. Es gibt keine "Löschreihenfolge".

von user (Gast)


Lesenswert?

Wenn du mitten beim Löschen ausschaltest, dann können einzelne Bits noch 
erhalten bleiben, aber dies über den ganzen Speicher verteilt.

von Donni D. (Gast)


Lesenswert?

Überall 1 reinschreiben, löschen, unterbrechen, auslesen und Ergebnis 
anschauen. Und gerne auch teilen, interessiert mich auch

Natürlich mehrere Durchläufe machen und vergleichen, damit man es 
beurteilen kann.

von Alex G. (dragongamer)


Lesenswert?

Ein Mikrocontrolerprogramm sollte eigentlich in der Regel so designt 
sein, dass es mit jedem Zustand seiner Umgebung, bei Start klar kommt...
Gibt es in deinem Fall Gründe die das verhindern?

Wenn es wirklich um viel Speicher geht, welcher eine Signifikante 
Verzögerunge rzögt,w enn du ihn gänzlich überschreibst, beim start, dann 
solltest du es eventuell etappenweise machen.
Also nur einen Teil löschen, den Fortschritt im persistenten Speicher 
festhalten, und dann weiter machen.

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.