Interfaz NAND flash con USBMSD

2

Estoy intentando leer archivos de un flash NAND ( K9LAG0800M ) quité un viejo reproductor de MP3, hasta ahora he podido leer los contenidos de NAND con éxito al conectarlo a mi PC como un USBMSD (dispositivo de almacenamiento masivo) usando un microcontrolador ARM.

El problema es que cuando lo conecto, aparece un error de "tabla de partición desconocida". Al mirar más de cerca la primera página, no parece tener un MBR válido. Después de algunas búsquedas, pude ubicar el MBR en el desplazamiento 0x7e800 ( página número 253), esto es lo que obtengo al usar file (1) en ese bloque (el formato MP3 fue formateado con FAT32)

  

sector de arranque x86, código de desplazamiento 0x58, OEM-ID "ALiOS1.0",   sectores / grupo 2, sectores reservados 34, descriptor de medios 0xf8, jefes   255, sectores 248448 (volúmenes > 32 MB), FAT (32 bits), sectores / FAT 963,   número de serie 0x30a3239e, sin etiqueta

Mi pregunta es, ¿por qué no se guarda el MBR en la primera página? ¿Significa esto que el controlador reasignó el primer bloque a otro? si es así, ¿hay alguna manera de averiguar cómo se gestionan los bloques defectuosos (sin el controlador original) para poder hacer la misma asignación en mi código para leer el sistema de archivos?

Gracias.

PS: intenté verificar si hay bloques defectuosos para ver si el bloque 0 es incorrecto, según la hoja de datos, un bloque defectuoso inicial se identifica mediante un byte no-FFh almacenado en el área de reserva de la última página del bloque, pero cuando Intenté que casi el 80% de los bloques se muestren como bloques defectuosos y el primer bloque no es uno de ellos. ¿Te parece una proporción razonable? ¿O estoy haciendo algo mal al buscar bloques defectuosos?

Alguna información sobre el flash:

8192 bloques

128 páginas por bloque

Área de reserva de 2K páginas + 64 bytes.

    
pregunta mux

0 respuestas

Lea otras preguntas en las etiquetas