Ich versuche, ein NOR-Flash-Speichergerät zu verwenden: SST25VF016B (mit STM32 Discoveryboard F407VG). Ich bin jedoch bei einigen Begriffen auf ihrem Datenblatt verwirrt. Das Datenblatt finden Sie hier: https://www.elfa.se/Web/Downloads/_t/ds/SST25VF016Bx_eng_tds.pdf
Im Datenblatt wird erwähnt, dass dieses Gerät 16 Megabit Speicher hat. Im Löschabschnitt heißt es jedoch, dass es Folgendes hat: 1. Vollständiges Chip-Löschen 2. 4-KB-Sektorlöschung 3. 32-KB-Blocklöschung 4. 64-KB-Blocklöschung
Was ich verstehe, nachdem ich mir einige Referenzen angesehen habe, ist, dass der Sektor der kleinste Abschnitt in einem Speichergerät ist, und dann haben wir Blöcke. Aber in diesem Fall bedeutet ein 4-KByte-Sektor, dass er beispielsweise von Adresse 0 bis Adresse 4000 gelöscht wird?
Und noch eine Frage, als ich versuchte, dieses Gerät zu programmieren, hieß es, dass wir den Chip zuerst löschen müssen, bevor wir programmieren. Wird es dasselbe sein, wenn ich das vollständige Chip-Löschen verwende, oder sollte ich es Block für Block (oder Sektor für Sektor) löschen?
Kann mir jemand helfen, das zu verstehen? Vielen Dank!!
Beifall
Das erste, was Sie über NOR-Flash verstehen müssen, ist, dass das Programmieren einzelner Bytes nur 1-Bits auf Null ändern kann, aber kein bereits auf Null gesetztes Bit ändern kann. Um ein bisschen auf eins zurückzusetzen, muss der gesamte kleinste löschbare Abschnitt gelöscht werden.
Bei diesem Chip ist der kleinste löschbare Abschnitt ein 4-KByte-Sektor (4096 Bytes, beispielsweise Bytes 0–4095). Die Blöcke mit 32 KByte (32.768 Byte) und 64 KByte (65.536 Byte) sind einfache Gruppen von Sektoren, die in einem einzigen Vorgang gelöscht werden können. Es spielt keine Rolle, ob Sie einen Sektor löschen, entweder einen Block oder den gesamten Chip. Alle Bytes im Bereich werden auf Einsen zurückgesetzt (0b11111111).
Bei den meisten NOR-Chips ist es eigentlich nicht erforderlich, ein Byte vor dem Programmieren zu löschen. Allerdings kann eine solche Umprogrammierung wieder nur Einsen in Nullen ändern. Das Schreiben aller Nullen in ein bereits programmiertes Nicht-Null-Byte oder Bytes kann nützlich sein, um beispielsweise einen Datenblock schnell als ungültig oder veraltet zu markieren.
Stanleyaley
DoxyLover
Stanleyaley
DoxyLover
Stanleyaley
Stanleyaley