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
>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.
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.
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
>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".
Wenn du mitten beim Löschen ausschaltest, dann können einzelne Bits noch erhalten bleiben, aber dies über den ganzen Speicher verteilt.
Ü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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.