I’m using Texas Instruments USB example on TI ARM Cortex M4 Tiva C:
USB Generic Bulk Device
This example provides a generic USB device offering simple bulk data
transfer to and from the host. The device uses a vendor-specific class ID
and supports a single bulk IN endpoint and a single bulk OUT endpoint.
Data received from the host is assumed to be ASCII text and it is
echoed back with the case of all alphabetic characters swapped.
Wrote macOS app which uses libusb to interact with Tiva C. Sent text gets echoed and uppercased.