Autor Tema: Sistema de archivos FAT que le falta la tabla de particiones  (Leído 6028 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Sistema de archivos FAT que le falta la tabla de particiones
« en: 08 de Julio de 2009, 14:10:58 »
Hola! Llevo unos cuantos dias estudiando la comunicacion SPI y el sistema de archivos FAT para poder leer una tarjeta SD. Tengo todo mas o menos claro... Pero ahora hay algo que no puedo entender. Tengo una tarjeta de 2GB, que estando formateada en FAT16 o FAT32 (en WinXP o en Vista) no tiene tabla de particiones  :z)
Segun todos los documentos que leo por internet (y ya voy unos cuantos) dicen que la tabla de particiones empieza en 0x1BE (446):
Citar
On a CompactFlash or a SD/MMC card, you must therefore first browse through the partition table (which starts at the absolute offset 0x1BE, from the start of the disk) and find the start of the partition.

Tan simple que parece, pero no hay manera... Ahi NO esta la tabla de particiones de mi tarjeta. Pongo unas capturas de pantalla para que vean el primer sector, formateado en FAT16 y en FAT32:

Fat16:


Fat32:


Como se ve, donde deberia estar la tabla de particiones estan los mensajes de error  :?
En la guia FAT al desnudo de Aitopes, la imagen del primer sector coincide con el mio, es decir, tampoco tiene la bendita tabla. Pero la imagen del primer sector de Aitopes es de un diskette, y creo que estos no tienen particiones.

A mi, hasta ahora no me hace falta llegar a la tabla de particiones. Consigo llegar al ROOT con los calculos de FirstDataSector de la guia, y alli estan los archivos que deberian estar, pero como en todos lados dicen que lo primero es contrar la tabla de particiones no se si me encontrare con alguna tarjeta que sea diferente a la mia, y sin estos datos no encuentre el ROOT  :(

Alguna idea? Mientras me voy a comprar otra tarjeta SD a ver que ocurre, porque ya me estoy poniendo violento con esta  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #1 en: 08 de Julio de 2009, 15:13:36 »
Hola Martyn, no necesariamente en un medio debe existir un partición, depende con que se formatee la tarjeta se inserta o no la tabla de partición. Desde el lado del firmware es recomendable que el mismo pueda operar de manera indistinta si exista o no. Yo utilizo estas secuencias de código:

Código: C
  1. /* Read the boot sector */
  2.   ReadSector( BootSector );
  3.  
  4.   /* Check for BOOT signature */
  5.   if ( GetWordFromMedia( &Sector[FORMAT_SIGN] ) != FORMAT_SIGN_VALUE )
  6.   {
  7.     return( FS_MediaInvalidFormat );
  8.   }
  9.  
  10.   /* Determine FAT type */
  11.   if ( IsFATTypeValid( Sector ) == FALSE )
  12.   {
  13.     /* Check if is MBR */
  14.     BootSector = GetWordFromMedia( &Sector[FIRST_PARTION] );
  15.  
  16.     ReadSector( BootSector );
  17.  
  18.     if ( IsFATTypeValid( Sector ) == FALSE )
  19.     {
  20.       return( FS_MediaInvalidFormat );
  21.     }
  22.   }

Leo el boot sector como si no existese particion, si la comprobacion falla, entonces asumo que existe una tabla de partición y desde ahi leo el boot sector. Si tenes dudas sobre esto en el sub-foro de FreeScale esta postado todo este código bajo el nombre de MIcroLogger.

Saludos !

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #2 en: 08 de Julio de 2009, 15:15:31 »
Cuando yo jugaba con mi sd card en el gamecube siempre se nos indicaba en los emuladores que el formateador de Windows XP formateaba las sd como se le daba la gana sin seguir el estándar SD.

Nos pasaron un formateador de tarjetas SD que cumple con el estándar y lo adjunto por si quieres probarlo.

SD Formatter v2.0 by Panasonic
http://panasonic.jp/support/global/cs/sd/download/sd_formatter.html

Citar
This software formats SD Memory Card and SDHC Memory Card(SD/SDHC Memory Card) using a formatting program that complies with the SD Memory Card specification SD formatting provides quick and easy access to the SD Memory Card.

Generally, SD/SDHC Memory Card file systems formatted with generic operating system formatting software do not comply with the SD Memory Card specification.

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #3 en: 08 de Julio de 2009, 15:23:30 »
Exacto Mig, ese es el formateador que uso yo ! Con windows tuve problemas.

Saludos !

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #4 en: 08 de Julio de 2009, 22:58:05 »
Bueno, me quedo mas tranquilo de saber que la tabla de particiones puede no estar  :-/
Con una tarjeta recien comprada veo que tampoco trae la tabla de particiones.
Lo que no puedo hacer es usar un formateador especial, ya que si quiero que mi programa pueda leer cualquier tarjeta, no puedo poner la restriccion de usar ese programa. Lo tendre que hacer lo mas compatible posible con Win sobre todo, que es con lo que la mayoria de la gente formateara las tarjetas. Lo que no entiendo es por que microsoft insiste en no seguir los standards  :5]
Por cierto, el WinHex funciona muy bien para ver el interior de la tarjeta, y el KillDisk es perfecto para borrar bit a bit el contenido de la tarjeta, y luego dar formato.

Gracias por la ayuda! Seguire investigando para hacerme un MP3  :-/
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #5 en: 09 de Julio de 2009, 15:27:53 »
Hola Marttyn, talvez te sirva este link:

http://www.ppczone.net/forum/archive/index.php/t-22343.html

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #6 en: 09 de Julio de 2009, 22:57:19 »
Gracias Mig! La verdad me ayudo bastante el link!
En resumen, los "Removable Media"1 como tarjetas de memoria, pendrives, CDs, etc... solo pueden tener UNA particion. Aunque consiguieramos hacer varias particiones y poner la tabla de particiones respectiva, windows solo reconoceria la primer particion. Es por eso que las tarjetas de memoria no tienen tabla de particiones... o eso es lo que entendi  :5}

Salu2!

Nota1: No confundir "Removable media" con la forma de conectar el dispositivo al PC. Un disco duro USB es removible por su forma de conexion, pero no se considera removable media, sino "Local Disk" ya que realmente a todos los efectos es como un disco duro normal.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #7 en: 24 de Julio de 2009, 00:48:58 »
Porque no ves la implementacion de FAT de CHAN? lo que tenes que hacer es implementar los metodos que pide para el acceso al bajo nivel.

    * disk_initialize - Initialize disk drive
    * disk_status - Get disk status
    * disk_read - Read sector(s)
    * disk_write - Write sector(s)
    * disk_ioctl - Control device dependent features
    * get_fattime - Get current time

Tenes dos versiones, la full (para microcontroladores de mas rendimiento) o la petit (para micros de 8 bits).

Version Full
Version petit

Yo hice la implementacion del mismo para ARM At91SAM7S con uso de RTOS:
Mira este link

Saludos!
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Sistema de archivos FAT que le falta la tabla de particiones
« Respuesta #8 en: 24 de Julio de 2009, 10:49:18 »
Darukur, en su momento descarte la posibilidad de usar Petit Fat porque segun las especificaciones necesita entre 2.5 y 3.5K bytes de rom... y como voy a utilizar el PIC 16F690, este tiene esa cantidad de rom, por lo que no me quedara nada de memoria para mi programa  :?
Pero lo voy a analizar un poco mas a fondo a ver que consigo, porque tal vez pueda quitarle algo y hacer que el codigo quepa  :mrgreen:
Hasta ahora estaba haciendo todo el manejo de los archivos yo solito, desde la comunicacion spi hasta la lectura de la fat... esto puede aliviar bastante el trabajo  :D
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.


 

anything