TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: jfmateos2 en 04 de Octubre de 2013, 15:51:40
-
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.
-
Creando una partición de 32kb? No te iría bien?
-
No te entiendo bien ppyote... el tamaño del disco es 32kb y tiene una sola partición de 32kb.
-
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 ?
-
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.
-
y por que no crear la particion en la justa medida del archivo que deseas almacenar?
-
El problema es que no sé de que tamaño es el archivo... puede ser variable.
-
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.