Release Notes for STM32 USB Device Library

Back to Release page

# Release Notes for STM32 USB Device Library

Copyright 2015 STMicroelectronics

## Update History

### V2.5.3 / 30-April-2019

Main Changes

- Fix misra-c 2012 high severity violations
- Core driver:

- protect shared macros __ALIGN_BEGIN, __ALIGN_END with C directive #ifndef
- update Core driver and DFU Class driver to use USBD_SUPPORT_USER_STRING_DESC insead of USBD_SUPPORT_USER_STRING
- prevent accessing to NULL pointer if the get descriptor functions are not defined
- Update on USBD_LL_Resume(), restore the device state only if the current state is USBD_STATE_SUSPENDED

### V2.5.2 / 27-Mars-2019

Main Changes

- DFU Class:

- fix compilation warning due to unreachable instruction code introduced with CMSIS V5.4.0 NVIC_SystemReset() prototype change

### V2.5.1 / 03-August-2018

Main Changes

- Update license section by adding path to get copy of ST Ultimate Liberty license
- Core: Fix unexpected stall during status OUT phase
- DFU Class:

- rework hdfu struct to prevent unaligned addresses

- MSC Class:

- fix lba address overflow during large file transfers > 4Go

- Template Class:

- add missing Switch case Break on USBD_Template_Setup API

### V2.5.0 / 15-December-2017

Main Changes

- Update license section
- Update some functions to be MISRAC 2004 compliant
- Add HS and OtherSpeed configuration descriptor for HID and CustomHID classes
- Correct error handling in all class setup function
- Add usbd_desc_template.c/ usbd_desc_template.h templates files
- Add support of class and vendor request
- CDC Class: fix zero-length packet issue in bulk IN transfer
- Fix compilation warning with unused arguments for some functions
- Improve USB Core enumeration state machine

### V2.4.2 / 11-December-2015

Main Changes

- CDC Class

- usbd_cdc.c: change #include "USBD_CDC.h" by #include "usbd_cdc.h"

### V2.4.1 / 19-June-2015

Main Changes

- CDC Class

- usbd_cdc.c: comments update

- MSC Class

- usbd_msc_bot.h: update to be C++ compliant

- AUDIO Class

- usbd_audio.c: fix issue when Host sends GetInterface command it gets a wrong value

- usbd_audio.c: remove useless management of DMA half transfer

### V2.4.0 / 28-February-2015

Main Changes

- Core Driver

- Add support of Link Power Management (LPM): add new API GetBOSDescriptor(), that is used only if USBD_LPM_ENABLED switch is enabled in usbd_conf.h file
- usbd_core.c: Fix bug of unsupported premature Host Out stage during data In stage (ie. when endpoint 0 maximum data size is 8 and Host requests GetDeviceDescriptor for the first time)
- usbd_ctlreq.c: Fix bug of unsupported Endpoint Class requests (ie. Audio SetCurrent request for endpoint sampling rate setting)

- HID Class

- Updating Polling time API USBD_HID_GetPollingInterval() to query this period for HS and FS
- usbd_hid.c: Fix USBD_LL_CloseEP() function call in USBD_HID_DeInit() replacing endpoint size by endpoint address.

- CDC Class

- usbd_cdc.c:

- Add missing GetInterface request management in USBD_CDC_Setup() function

- Update USBD_CDC_Setup() function to allow correct user implementation of CDC_SET_CONTROL_LINE_STATE and similar no-data setup requests.

### V2.3.0 / 04-November-2014

Main Changes

- Update all drivers to be C++ compliant
- CDC Class

- usbd_cdc.c: fix clear flag issue in USBD_CDC_TransmitPacket() function

- usbd_cdc_if_template.c: update TEMPLATE_Receive() function header comment

- Miscellaneous source code comments update

### V2.2.0 / 13-June-2014

Main Changes

- Source code comments review and update
- HID class

- Remove unused API USBD_HID_DeviceQualifierDescriptor()
- Add a new API in the HID class to query the poll time USBD_HID_GetPollingInterval()

- CDC class

- Bug fix: missing handling ZeroLength Setup request

- All classes

- Add alias for the class definition, it's defined as macro with capital letter

ex. for the HID, the USBD_HID_CLASS macro is defined this way #define USBD_HID_CLASS &USBD_HID
and the application code can use the previous definition: &USBD_HID ex. USBD_RegisterClass(&USBD_Device, &USBD_HID) or the new USBD_HID_CLASS ex. USBD_RegisterClass(&USBD_Device, USBD_HID_CLASS)

### V2.1.0 / 22-April-2014

Main Changes

- usbd_conf_template.c: update file with the right content (it was using MSC memory management layer)
- usbd_conf_template.h: change include of stm32f4xx.h by stm32xxx.h and add comment to inform user to adapt it to the device used
- Several enhancements in CustomHID class

- Update the Custom HID class driver to simplify the link with user processes
- Optimize the Custom HID class driver and reduce footprint
- Add USBD_CUSTOM_HID_RegisterInterface() API to link user process to custom HID class
- Add Custom HID interface template file usbd_customhid_if_template.c/h

- Miscellaneous comments update

### V2.0.0 / 18-February-2014

Main Changes

- Major update based on STM32Cube specification: Library Core, Classes architecture and APIs modified vs. V1.1.0, and thus the 2 versions are not compatible.
- This version has to be used only with STM32Cube based development

### V1.1.0 / 19-March-2012

Main Changes

- Official support of STM32F4xx devices
- All source files: license disclaimer text update and add link to the License file on ST Internet.
- Handle test mode in the set feature request
- Handle dynamically the USB SELF POWERED feature
- Handle correctly the USBD_CtlError process to take into account error during Control OUT stage
- Miscellaneous bug fix

### V1.0.0 / 22-July-2011

Main Changes

- First official version for STM32F105/7xx and STM32F2xx devices

## License

This software component is licensed by ST under Ultimate Liberty license SLA0044, the "License"; You may not use this component except in compliance with the License. You may obtain a copy of the License at:

http://www.st.com/SLA0044

For complete documentation on STM32 Microcontrollers visit www.st.com/STM32