USB-Deskriptor-Tool?

9

Kann jemand ein Assistenten-ähnliches Tool zum Erstellen von USB-Gerätedeskriptoren empfehlen?

Die meisten (alle?) USB-Firmware-Beispiele, die ich bisher untersucht habe, definieren die Deskriptoren als einfaches Byte-Array in einer manuell ausgefüllten C-Datei (mit ein wenig Hilfe von Makros).

Es ist natürlich keine schwarze Magie, aber ich glaube immer noch, dass ein einfaches Spezialwerkzeug nützlich sein könnte. Das Googeln ergab jedoch keine nützlichen Ergebnisse ...

Codemaler
quelle

Antworten:

1

Ein zaubererähnliches Werkzeug mag beim ersten Gebrauch niedlich sein, aber dann stört es. Eine bessere Methode ist eine anständige Struktur der Deskriptoren im Speicher sowie einige hilfreiche Makros und andere Vorverarbeitungslogiken, damit Sie die Informationen auf einer höheren Ebene bereitstellen können und die richtigen Bytes und Bits automatisch ausgefüllt werden.

Mein USB-Stack für den PIC 18 funktioniert so. Sie können das und eine Reihe anderer Dinge von meiner Software-Download-Seite installieren . Das statische USB-Setup wird in zwei Dateien definiert. Die Vorlagen für diese heißen QQQ_USB.INS.ASPIC und QQQ_USB0.INS.ASPIC im Verzeichnis SOURCE> PIC. Zuerst definieren Sie die VID / PID, welche Endpunkte Sie verwenden und welche Übertragungstypen pro Endpunkt in der Datei usb.ins.aspic. Anschließend ändern Sie die Deskriptoren in usb0.ins.aspic mit dem kleinen Bit, das Sie anpassen müssen. Da es bereits Dinge wie die Übertragungstypen und Puffergrößen kennt, lassen Sie diese Symbole in Ruhe und ändern einfach, was für Ihre Implementierung einzigartig ist. In den meisten Fällen werden nur der Herstellername und der Produktname angepasst. Diese schreiben Sie als normale Zeichenfolgen und ein Makro sorgt für die richtige Formatierung.

Olin Lathrop
quelle
Nun, beide Wege haben Vor- und Nachteile. Ich gehe davon aus, dass ein ordnungsgemäß geschriebenes Tool die Einstellungen in einer Art Textdatei speichern kann (so dass man sie im Code-Repository behalten kann) und es ermöglicht, die Einstellungen erneut zu bearbeiten und die Deskriptordatei bei Bedarf neu zu generieren. Ich glaube, dies könnte aus mindestens zwei Gründen nützlich sein: a) Sicherstellen, dass der Deskriptor gültig ist, b) Bereitstellen einer nützlichen kontextbezogenen Hilfe für jedes Feld. Ein weiterer nützlicher Anwendungsfall ist das Importieren des Deskriptors von einem tatsächlichen USB-Gerät, das an den PC angeschlossen ist.
Code Painters
@Czajnik: Hast du dir den Code angesehen, den ich überhaupt erwähnt habe? Es ist wirklich nicht so schwer, das auszufüllen, was Sie wollen.
Olin Lathrop
1
Ja, das habe ich (übrigens ist die exe-Datei für Linux-Benutzer etwas unfreundlich). Und ich habe schon früher meine eigenen Deskriptoren gemacht, wie gesagt, es ist keine schwarze Magie für mich. Ich denke, es ist wirklich eine Frage der persönlichen Präferenz :)
Code Painters