FATFS portando en STM32F103 SPI Flash

2

He portado FATFS para RTOS gratis en STM32F103 SPI Flash de 32 Mbit. En una aplicación de demostración, he creado con éxito un archivo, escribí un archivo y leí el archivo. Mi requisito es que tengo que almacenar varios archivos (imágenes) en SPI flash y leerlos cuando sea necesario.

Tengo las siguientes condiciones / consultas.

  1. He establecido el Tamaño del sector en 512 bytes, y el tamaño de borrado de bloque para SPI flash es 4K. Al igual que en SPI Flash, el bloque debe borrarse antes de escribirse. ¿Debo hacer un seguimiento de si un bloque en particular se borra o no o de su sistema de archivos que lo gestiona?

  2. ¿Cómo puedo verificar que el sector en el que estoy escribiendo se haya borrado o no? Lo que estoy haciendo actualmente es, ¿Borrar el bloque completo para el sector, que voy a escribir?

  3. ¿Cómo puedo asegurarme de que The Block for SPI flash que voy a borrar no afectará a ningún Sector que contenga datos útiles?

pregunta CAK

1 respuesta

2

FATFS es una mala elección para usar directamente en un chip flash sin ninguna capa de traducción intermedia, ya que escribir el FAT sobrescribirá el mismo sector una y otra vez, causando que estas celdas se desgasten rápidamente.

  1. No puede determinar de manera confiable si un bloque determinado se ha borrado. Si se lee solo, la probabilidad es bastante alta de que se trate de un bloque vacío y utilizable, pero también podría ser un bloque que estaba en proceso de borrarse cuando se cortó la alimentación, por lo que algunos de los bits podrían ser inestable. Un sistema de archivos flash debe ser consciente de esto, y marcar explícitamente los bloques que ha borrado con éxito con un marcador específico.

  2. La única forma de estar seguro es realizar un borrado inmediatamente antes o tener una nota en algún lugar que se haya borrado un bloque determinado.

  3. Borrarás todo el bloque, que contiene 8 sectores. Si alguno de estos sectores ya contiene datos, también se borrarán, lo que usted quiere evitar.

Como se dijo, FAT no es adecuado para su uso de esta manera.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas