Tengo algunas preguntas sobre nand recuerdos.
- ¿Debemos borrar todo el bloque para volver a escribir una sola página?
- Si es verdadero, ¿cuál es el algoritmo? Almacenar en caché todo el bloque > editar una página > borrar todo el bloque > escribir bloque entero?
- ¿Cómo funciona la entrada de datos aleatorios? ¿Necesitamos borrar el bloque para ingresar pocos bytes en modo aleatorio?
p.s. Estoy escribiendo la aplicación MSD con STM32F207ZG mcu + K9F1G08U0B nand
EDITAR para novatos como yo
Cómo funciona NAND Flash:
Podemos realizar lectura y escritura en la página o utilizar entradas aleatorias o salidas aleatorias en cualquier página. No hay nada especial en la lectura, pero escucho que la lectura, como la escritura, puede llevar páginas.
Después de borrar todos los bits en el área borrada, se establece en 1, y cuando escribimos, solo establecemos algunos bits en 0. Una vez que el bit se establece en 0, no se puede establecer en 1 nuevamente, solo se puede establecer el bit en 1 borrando la región que contiene ese bit. Como consecuencia, si necesitamos completar alguna región con 0x00, no necesitamos borrar esta región.
Y nota: el borrado se puede realizar solo en bloques (no en páginas). Descubrí que cuando especifique la dirección de la página para borrar, el bloque que contiene esa página se borrará. Por lo tanto, debemos especificar no un número de bloque para borrar, sino, por ejemplo, el número de la primera página en el bloque.
Espero que esta información sea correcta y que sea útil para alguien. Lo siento por mi inglés roto;)
Gracias a Supercat por la explicación.