¿Es posible dividir las solicitudes de control de USB 2.0?

4

Estoy desarrollando una aplicación para microcontrolador con USB incorporado. Se supone que la aplicación es lo más portátil posible, por lo que no puedo señalar a una familia en particular.

Estoy en el proceso de leer el descriptor de configuración de un dispositivo, sin embargo, es demasiado largo para caber en mi búfer interno. No puedo usar la memoria dinámica para esto, por lo que es necesario asignar estáticamente un búfer para las transferencias de control y realmente quiero minimizar su tamaño dado que no se utilizará mucho. Por lo tanto, asignarle un par de Kb solo para este descriptor de cfg no es una opción.

No lo he encontrado en el estándar, pero tal vez no me haya parecido lo suficientemente bueno ... ¿es posible dividir las solicitudes de control en varias? Por ejemplo, solicite 128 (o lo que sea) bytes del cfg desc, luego solicite otros 128 bytes del mismo descriptor, por supuesto, estos deberán devolverse con un desplazamiento de 128 para tener en cuenta los ya leídos, y así sucesivamente.

¿Es esto posible?

Gracias a todos por su tiempo.

    
pregunta elpato

1 respuesta

2

En lugar de solicitar el descriptor de configuración y reunir todos los descriptores de interfaz y punto final, puede solicitar los descriptores uno por uno. Un descriptor de dispositivo es de 18 bytes, y los otros descriptores estándar son incluso más pequeños. (Los descriptores de clase pueden ser más grandes, así que escoja el más grande que necesite como tamaño de búfer). Deberá analizar los descriptores para averiguar qué más solicitar, pero eso no es mucho trabajo adicional. El descriptor del dispositivo proporciona el número de configuraciones, la configuración proporciona el número de interfaces y la interfaz proporciona el número de puntos finales y la clase.

    
respondido por el Adam Haun

Lea otras preguntas en las etiquetas