The Belcarra USB system, BTC-USB, boasts a highly optimized and centralized management subsystem , which has been tested across a wide variety of architectures. There are three main parts of this subsystem: USB Function API, BTC subsystem, and OS abstraction.
USB Function API
The USB Function API offers USB management services for the basic case of a USB peripheral. This includes a sophisticated and complete system for managing a variety of functions, activating particular functions either by default or by administrative action. As mentioned above, it has separate support for managing composite and interface functions. The latter are never directly visible to the host, but instead groups of instances of interface functions are assembled by a composite function and presented to the host.