XMOS USB Device (XUD) library¶
All low level communication with the USB host is handled by the XMOS USB Device (XUD) library - lib_xud
The XUD_Main() function runs in its own thread and communicates with endpoint threads though a
mixture of shared memory and channel communications.
For more details and full XUD API documentation please refer to lib_xud.
Fig. 1 shows the XUD library communicating with two other threads:
Endpoint 0: This thread controls the enumeration/configuration tasks of the USB device.
Endpoint Buffer: This thread sends/receives data packets from the XUD library. The thread receives audio data from the AudioHub, MIDI data from the MIDI thread etc.