Autor Tema: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device  (Leído 980 veces)

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

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Hola, he creado un Mass Storage Device de 32kb y quiero que al grabar un archivo en él ya no permita grabar otro archivo a menos que se borre el anterior.

Lo que he hecho es interceptar los sectores que escribe windows en la FAT suplantando el tamaño del archivo y haciéndolo igual a 32kb, de modo que el disco parezca lleno.

Esto funciona bien si grabo un archivo, expulso el MSD y lo vuelvo a insertar, pero si no lo expulso, la FAT del sistema operativo no se entera de la usurpación que he hecho en la FAT del MSD y permite grabar más archivos.

¿Se os ocurre otra alternativa para resolver esta situación?

Me he quedado seco de ideas... a ver si a vosotros se os ocurre algo.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device
« Respuesta #1 en: 04 de Octubre de 2013, 16:56:15 »
Creando una partición de 32kb? No te iría bien?
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device
« Respuesta #2 en: 04 de Octubre de 2013, 17:02:14 »
No te entiendo bien ppyote... el tamaño del disco es 32kb y tiene una sola partición de 32kb.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device
« Respuesta #3 en: 05 de Octubre de 2013, 04:34:46 »
No te entiendo bien ppyote... el tamaño del disco es 32kb y tiene una sola partición de 32kb.

Y el archivo que copias, también ocupa los 32kb? O no llega ?
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device
« Respuesta #4 en: 05 de Octubre de 2013, 04:37:47 »
No, el archivo no ocupa 32kb... la solución obvia sería definir la partición con un único sector de 32kb, pero esto no es posible porque las funciones de la librería de MSD requieren crear un array RAM con el mismo tamaño que el sector y el pic no tiene tanta ram.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device
« Respuesta #5 en: 05 de Octubre de 2013, 07:06:30 »
y por que no crear la particion en la justa medida del archivo que deseas almacenar?
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device
« Respuesta #6 en: 05 de Octubre de 2013, 08:25:53 »
El problema es que no sé de que tamaño es el archivo... puede ser variable.

Desconectado Darkman_A

  • PIC18
  • ****
  • Mensajes: 288
Re: Impedir que se pueda almacenar más de un archivo en un USB Mass Storage Device
« Respuesta #7 en: 05 de Octubre de 2013, 09:34:20 »
Hola, he creado un Mass Storage Device de 32kb y quiero que al grabar un archivo en él ya no permita grabar otro archivo a menos que se borre el anterior.

Lo que he hecho es interceptar los sectores que escribe windows en la FAT suplantando el tamaño del archivo y haciéndolo igual a 32kb, de modo que el disco parezca lleno.

Esto funciona bien si grabo un archivo, expulso el MSD y lo vuelvo a insertar, pero si no lo expulso, la FAT del sistema operativo no se entera de la usurpación que he hecho en la FAT del MSD y permite grabar más archivos.

¿Se os ocurre otra alternativa para resolver esta situación?

Me he quedado seco de ideas... a ver si a vosotros se os ocurre algo.


Hola.
Tendrias que explicarnos un poco mas lo que estas haciendo. No se por ejemplo desde que plataforma lo estas haciendo ni en que lenguaje. Supongo, por los otros mensajes que has dado en respuesta, que es desde una plataforma Windows.
Quizas una vez que actualizas la FAT, como mensionas en un post anterior, te falte grabar los datos del buffer al dispositivo, por ejemplo con:
WinUsb_WriteIsochPipeAsap    Writes the contents of a buffer to an isochronous OUT endpoint. 
O algo parecido. Así, si retiran el dispositivo sin desmontarlo no perderias datos, dado que ya estaria todo grabado.

Saludos.