Por qué un flash de 4KB (bloque de borrado) usa demasiada memoria RAM [cerrada]

0

Estoy usando un SST26VF (borrado de bloques de 4KB) flash con FAT FS de elm chan . Y cuando lo compilé para mi STM32F103 está usando demasiada RAM. Pero la aplicación del Sr. Chan señala que el uso de la memoria no se ajusta al tamaño del sector (que tengo establecer como 4096). ¿Por qué estaría usando esta cantidad de RAM? Mi programa funcionó perfectamente bien con una tarjeta SD (el tamaño del sector FAT es de 512 bytes). Pero ahora, cuando lo reconfiguré para SST26VF, su uso de RAM es más de lo que ofrece la unidad uC.

    
pregunta clmno

1 respuesta

3

El tamaño del bloque de borrado mínimo determina el tamaño del búfer de RAM requerido para las operaciones RMW (lectura-modificación-escritura), al menos en implementaciones ingenuas. Las operaciones de RMW son comunes en implementaciones de sistemas de archivos, usadas para actualizar estructuras de datos como directorios y tablas de asignación.

Es posible solucionar esto al escribir los datos actualizados en un bloque previamente borrado, pero mantener un registro de tales reubicaciones puede ser muy complicado. Esto generalmente se hace como parte de un esquema de nivelación de desgaste, que normalmente es una capa separada del software de la lógica del sistema de archivos.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas