Für die ARM-Seite benötigen Sie einen USB-Stack. Für die PC-Seite müssen Sie einen USB-Treiber und eine Anwendung implementieren, die eine Schnittstelle zum Treiber bildet. Es ist daher einfacher, sich an eines der gängigen Profile (HID, Massenspeicher, Virtual COM) zu halten. Für alle diese Profile gibt es USB-Stacks, so dass Sie nicht selbst einen implementieren müssen. Außerdem brauchen Sie keinen USB-Treiber für den PC zu implementieren.
Ich denke, dass es am einfachsten ist, einen Virtual COM-Ansatz zu verwenden. Von der PC-Seite aus sieht es so aus, als würden Sie auf eine serielle Schnittstelle zugreifen. Die Geschwindigkeit kann jedoch höher sein als bei Standard-RS232-Ports. Ich habe folgendes gefunden USB-Stapel die auf einen früheren Prozessor abzielen. Sie können ihn für Ihre Bedürfnisse anpassen oder als Referenz verwenden. Im Allgemeinen wird ein virtueller COM-Treiber für den PC zusammen mit dem ARM-USB-Stack bereitgestellt.
Ein anderer Ansatz ist die Verwendung von libusb . Dadurch können Sie mit USB interagieren, ohne einen Kernel-Treiber zu schreiben.
Für Anwendungshinweise und kommerzielle USB-Stacks siehe aquí . Wenn Sie entschlossen sind, Ihren eigenen Stack und Treiber zu schreiben, Jungo ist der Branchenführer für eingebettete USB-Stacks und -Treiber.