Shifting focus to the software solutions available for the STM32 connectivity line, ST supports the STM32 with a free software library including program examples. The libraries and examples are written in ANSI-C and provide high-level functions for configuring and using all the available peripherals. These libraries are compliant with the CMSIS standard, which is a vendor-independent hardware abstraction layer for the Cortex processor to simplify software reuse across different platforms. ST also offers a free motor control library supporting sensorless vector control for 3-phase brushless motors. A free DSP library covering PID, IIR, FFT, and FIR is also available. Finally, a free USB device library is available and supports the following USB classes: mass storage, HID, DFU, CDC and audio.