Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
Toggle table of contents sidebar

# 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.