Update
History
V2.10.0
/ 03-Sept-2021
Main
Changes
- Integration of new USB device Class driver:
- Adding support of Composite devices with an auto
generation of composite device configuration
descriptors
- USB All Classes:
- Fix Code Spelling and improve Code Style
- Update device class drivers to support Composite
devices
- Improve declaration of USB configuration
descriptor table which is allocated if the
composite builder is not selected
V2.9.0
/ 06-July-2021
Main
Changes
- Integration of new USB device Class driver:
- USB CCID Class driver based on Universal
Serial Bus Device Class Definition for Integrated
Circuit(s) Cards Interface Devices Revision 1.1
- USB MTP Class driver based on Universal Serial
Bus Device Class Media Transfer Protocol Revision
1.1
- USB All Classes:
- Fix Code Spelling and improve Code Style
- Update the way to declare licenses
- USB CDC/RNDIS/ECM Classes:
- Fix compilation warning with C++ due to missing
casting during class handler allocation
V2.8.0
/ 10-Mars-2021
Main
Changes
- Integration of new USB device Class driver:
- USB Printer Class driver based on Universal
Serial Bus Device Class Definition for Printing
Devices Version 1.1
- USB All Classes:
- Fix USB buffer overflow vulnerability for CDC,
CDC-ECM, CDC-RNDIS, DFU, AUDIO, CustomHID, and
Video Classes
- fix compilation warning with C++ due to missing
casting during class handler allocation
- Enhance comments of USB configuration
descriptors fields
- USB Video Class:
- fix missing closing bracket for extern "C" in
usbd_video.h
- fix USBCV test with Uncompressed video format
support
V2.7.1
/ 18-August-2020
Main
Changes
- USB All Class:
- Add NULL pointer access check to Class handler
V2.7.0
/ 12-August-2020
Main
Changes
- Integration of new USB device Class driver:
- USB video Class driver based on USB-IF video
class definition version 1.1
- USB Core:
- Enhance NULL pointer check in Core APIs
- Allow supporting both USER and USER Class string
desc
- Add support of USB controller which handles
packet-size splitting by hardware
- Avoid compilation warning due macro redefinition
- change added to USBD_HandleTypeDef structure:
dev_state, old_dev_state and ep0_state declaration
become volatile to disable compiler optimization
- Word spelling correction and file indentation
improved
- usbd_conf.h/c Template file updated to suggest
using by default a static memory allocation for
Class handler
- USB All Classes
- Word spelling correction and file indentation
improved
- Allow updating device config descriptor Max
power from user code usbd_conf.h using
USBD_MAX_POWER define
- Fix device config descriptor bmAttributes value
which depends on user code define
USBD_SELF_POWERED
- USB CDC Class:
- Class specific request, add protection to limit
the maximum data length to be sent by the CDC
device
- USB CustomHID Class:
- Allow changing CustomHID data EP size from user
code
V2.6.1
/ 05-June-2020
Main
Changes
- USB Core:
- minor rework on USBD_Init() USBD_DeInit()
- Fix warning issue with Keil due to missing
return value of setup API
- USB CDC Class:
- Fix file indentation
- Avoid accessing to NULL pointer in case
TransmitCplt() user fops is not defined to allow
application compatibility with device library
version below v2.6.0
- Fix minor misra-c 2012 violations
V2.6.0
/ 27-December-2019
Main
Changes
- Integration of three new USB device Class drivers:
- USB CDC ECM Class driver
- USB CDC RNDIS Microsoft Class driver
- USB Billboard Class driver
- Fix mandatory misra-c 2012 violations
- update user core and class template files
- USB Core:
- Fix unexpected EP0 stall during enumeration
phase
- Improve APIs error management and prevent
accessing NULL pointers
- USB MSC Class:
- Fix USBCV specific class tests
- Fix multiple error with SCSI commands handling
- Protect medium access when host ask for medium
ejection
- USB CDC Class:
- Add new function to inform user that current IN
transfer is completed
- update transmit and receive APIs to transfer up
to 64KB
- USB AUDIO Class:
- Fix audio sync start buffer size
- update user callback periodicTC args by adding
pointer to user buffer and size
- USB CustomHID Class:
- Rework the OUT transfer complete and prevent
automatically re-enabling the OUT EP
- Add new user API to restart the OUT transfer:
USBD_CUSTOM_HID_ReceivePacket()
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 instead 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
|