Herramienta descriptor USB?

9

¿Alguien podría recomendar alguna herramienta similar a un asistente para crear descriptores de dispositivos USB?

La mayoría (¿todos?) Ejemplos de firmware USB que he analizado hasta ahora definen los descriptores como una simple matriz de bytes en un archivo .c, llenada manualmente (con un poco de ayuda de las macros).

No es una magia negra, obviamente, aún creo que una herramienta especializada simple podría ser útil. Buscar en Google no dio resultados útiles, sin embargo ...

Pintores de código
fuente

Respuestas:

1

Una herramienta similar a un mago puede ser linda la primera vez que la usa, pero luego se interpone. Un método mejor es una estructura decente de los descriptores en la memoria, y algunas macros útiles y otra lógica de preprocesamiento para que pueda proporcionar la información a un nivel superior y los bytes y bits correctos se completen automáticamente.

Mi pila USB para el PIC 18 funciona así. Puede instalar eso y muchas otras cosas desde mi página de descargas de software . La configuración USB estática se define en dos archivos. Las plantillas para estos se denominan QQQ_USB.INS.ASPIC y QQQ_USB0.INS.ASPIC en el directorio SOURCE> PIC. Primero defina el VID / PID, los puntos finales que usa y los tipos de transferencia por punto final en el archivo usb.ins.aspic. Luego modifique los descriptores en usb0.ins.aspic con el poco que necesita personalizar. Como ya conoce cosas como los tipos de transferencia y los tamaños de búfer, deja esos símbolos solos y simplemente cambia lo que es exclusivo de su implementación. En la mayoría de los casos, eso solo ajusta el nombre del fabricante y el nombre del producto. Estos se escriben como cadenas ordinarias y una macro se encarga del formato adecuado.

Olin Lathrop
fuente
bueno, ambas formas tienen pros y contras. Supongo que una herramienta escrita correctamente podría almacenar la configuración en algún tipo de archivo de texto (por lo que uno podría mantenerla en el repositorio de código) y permitir volver a editar la configuración y regenerar el archivo descriptor cuando lo necesite. Creo que esto podría ser útil por al menos 2 razones: a) asegurar que el descriptor sea válido, b) proporcionar algún tipo de ayuda contextual útil para cada campo. Otro caso de uso útil es importar el descriptor del dispositivo USB real conectado a la PC.
Code Painters el
@Czajnik: ¿Viste el código que mencioné? Realmente no es tan difícil completar lo que quieres.
Olin Lathrop
1
Sí, lo hice (por cierto, el archivo exe es un poco hostil para los usuarios de Linux). Y he hecho mis propios descriptores antes, como dije, no es magia negra para mí. Supongo que es una cuestión de preferencia personal, realmente :)
Code Painters