Skip to content

Commit bf499dd

Browse files
committed
USB: update STM32 USB Device library to v2.7.0
https://github.com/STMicroelectronics/stm32_mw_usb_device/releases/tag/v2.7.0 Signed-off-by: Frederic Pillon <[email protected]>
1 parent 5f788e8 commit bf499dd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+4383
-2161
lines changed

system/Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Src/usbd_audio.c

Lines changed: 93 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,12 @@ __ALIGN_BEGIN static uint8_t USBD_AUDIO_CfgDesc[USB_AUDIO_CONFIG_DESC_SIZ] __ALI
162162
0x02, /* bNumInterfaces */
163163
0x01, /* bConfigurationValue */
164164
0x00, /* iConfiguration */
165-
0xC0, /* bmAttributes BUS Powred*/
166-
0x32, /* bMaxPower = 100 mA*/
165+
#if (USBD_SELF_POWERED == 1U)
166+
0xC0, /* bmAttributes: Bus Powered according to user configuration */
167+
#else
168+
0x80, /* bmAttributes: Bus Powered according to user configuration */
169+
#endif
170+
USBD_MAX_POWER, /* bMaxPower = 100 mA */
167171
/* 09 byte*/
168172

169173
/* USB Speaker Standard interface descriptor */
@@ -229,7 +233,7 @@ __ALIGN_BEGIN static uint8_t USBD_AUDIO_CfgDesc[USB_AUDIO_CONFIG_DESC_SIZ] __ALI
229233
0x00, /* iTerminal */
230234
/* 09 byte*/
231235

232-
/* USB Speaker Standard AS Interface Descriptor - Audio Streaming Zero Bandwith */
236+
/* USB Speaker Standard AS Interface Descriptor - Audio Streaming Zero Bandwidth */
233237
/* Interface 1, Alternate Setting 0 */
234238
AUDIO_INTERFACE_DESC_SIZE, /* bLength */
235239
USB_DESC_TYPE_INTERFACE, /* bDescriptorType */
@@ -334,7 +338,7 @@ static uint8_t USBD_AUDIO_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx)
334338
UNUSED(cfgidx);
335339
USBD_AUDIO_HandleTypeDef *haudio;
336340

337-
/* Allocate Audio structure */
341+
/* Allocate Audio structure */
338342
haudio = USBD_malloc(sizeof(USBD_AUDIO_HandleTypeDef));
339343

340344
if (haudio == NULL)
@@ -426,95 +430,95 @@ static uint8_t USBD_AUDIO_Setup(USBD_HandleTypeDef *pdev,
426430

427431
switch (req->bmRequest & USB_REQ_TYPE_MASK)
428432
{
429-
case USB_REQ_TYPE_CLASS:
430-
switch (req->bRequest)
431-
{
432-
case AUDIO_REQ_GET_CUR:
433-
AUDIO_REQ_GetCurrent(pdev, req);
434-
break;
435-
436-
case AUDIO_REQ_SET_CUR:
437-
AUDIO_REQ_SetCurrent(pdev, req);
438-
break;
439-
440-
default:
441-
USBD_CtlError(pdev, req);
442-
ret = USBD_FAIL;
443-
break;
444-
}
445-
break;
446-
447-
case USB_REQ_TYPE_STANDARD:
448-
switch (req->bRequest)
449-
{
450-
case USB_REQ_GET_STATUS:
451-
if (pdev->dev_state == USBD_STATE_CONFIGURED)
452-
{
453-
(void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U);
454-
}
455-
else
456-
{
457-
USBD_CtlError(pdev, req);
458-
ret = USBD_FAIL;
459-
}
460-
break;
461-
462-
case USB_REQ_GET_DESCRIPTOR:
463-
if ((req->wValue >> 8) == AUDIO_DESCRIPTOR_TYPE)
433+
case USB_REQ_TYPE_CLASS:
434+
switch (req->bRequest)
464435
{
465-
pbuf = USBD_AUDIO_CfgDesc + 18;
466-
len = MIN(USB_AUDIO_DESC_SIZ, req->wLength);
436+
case AUDIO_REQ_GET_CUR:
437+
AUDIO_REQ_GetCurrent(pdev, req);
438+
break;
467439

468-
(void)USBD_CtlSendData(pdev, pbuf, len);
469-
}
470-
break;
440+
case AUDIO_REQ_SET_CUR:
441+
AUDIO_REQ_SetCurrent(pdev, req);
442+
break;
471443

472-
case USB_REQ_GET_INTERFACE:
473-
if (pdev->dev_state == USBD_STATE_CONFIGURED)
474-
{
475-
(void)USBD_CtlSendData(pdev, (uint8_t *)&haudio->alt_setting, 1U);
476-
}
477-
else
478-
{
479-
USBD_CtlError(pdev, req);
480-
ret = USBD_FAIL;
444+
default:
445+
USBD_CtlError(pdev, req);
446+
ret = USBD_FAIL;
447+
break;
481448
}
482449
break;
483450

484-
case USB_REQ_SET_INTERFACE:
485-
if (pdev->dev_state == USBD_STATE_CONFIGURED)
451+
case USB_REQ_TYPE_STANDARD:
452+
switch (req->bRequest)
486453
{
487-
if ((uint8_t)(req->wValue) <= USBD_MAX_NUM_INTERFACES)
488-
{
489-
haudio->alt_setting = (uint8_t)(req->wValue);
490-
}
491-
else
492-
{
493-
/* Call the error management function (command will be nacked */
454+
case USB_REQ_GET_STATUS:
455+
if (pdev->dev_state == USBD_STATE_CONFIGURED)
456+
{
457+
(void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U);
458+
}
459+
else
460+
{
461+
USBD_CtlError(pdev, req);
462+
ret = USBD_FAIL;
463+
}
464+
break;
465+
466+
case USB_REQ_GET_DESCRIPTOR:
467+
if ((req->wValue >> 8) == AUDIO_DESCRIPTOR_TYPE)
468+
{
469+
pbuf = USBD_AUDIO_CfgDesc + 18;
470+
len = MIN(USB_AUDIO_DESC_SIZ, req->wLength);
471+
472+
(void)USBD_CtlSendData(pdev, pbuf, len);
473+
}
474+
break;
475+
476+
case USB_REQ_GET_INTERFACE:
477+
if (pdev->dev_state == USBD_STATE_CONFIGURED)
478+
{
479+
(void)USBD_CtlSendData(pdev, (uint8_t *)&haudio->alt_setting, 1U);
480+
}
481+
else
482+
{
483+
USBD_CtlError(pdev, req);
484+
ret = USBD_FAIL;
485+
}
486+
break;
487+
488+
case USB_REQ_SET_INTERFACE:
489+
if (pdev->dev_state == USBD_STATE_CONFIGURED)
490+
{
491+
if ((uint8_t)(req->wValue) <= USBD_MAX_NUM_INTERFACES)
492+
{
493+
haudio->alt_setting = (uint8_t)(req->wValue);
494+
}
495+
else
496+
{
497+
/* Call the error management function (command will be NAKed */
498+
USBD_CtlError(pdev, req);
499+
ret = USBD_FAIL;
500+
}
501+
}
502+
else
503+
{
504+
USBD_CtlError(pdev, req);
505+
ret = USBD_FAIL;
506+
}
507+
break;
508+
509+
case USB_REQ_CLEAR_FEATURE:
510+
break;
511+
512+
default:
494513
USBD_CtlError(pdev, req);
495514
ret = USBD_FAIL;
496-
}
497-
}
498-
else
499-
{
500-
USBD_CtlError(pdev, req);
501-
ret = USBD_FAIL;
515+
break;
502516
}
503517
break;
504-
505-
case USB_REQ_CLEAR_FEATURE:
506-
break;
507-
508518
default:
509519
USBD_CtlError(pdev, req);
510520
ret = USBD_FAIL;
511521
break;
512-
}
513-
break;
514-
default:
515-
USBD_CtlError(pdev, req);
516-
ret = USBD_FAIL;
517-
break;
518522
}
519523

520524
return (uint8_t)ret;
@@ -651,13 +655,13 @@ void USBD_AUDIO_Sync(USBD_HandleTypeDef *pdev, AUDIO_OffsetTypeDef offset)
651655
{
652656
if ((haudio->wr_ptr - haudio->rd_ptr) < AUDIO_OUT_PACKET)
653657
{
654-
BufferSize -= 4U;
658+
BufferSize -= 4U;
655659
}
656660
else
657661
{
658662
if ((haudio->wr_ptr - haudio->rd_ptr) > (AUDIO_TOTAL_BUF_SIZE - AUDIO_OUT_PACKET))
659663
{
660-
BufferSize += 4U;
664+
BufferSize += 4U;
661665
}
662666
}
663667
}
@@ -798,11 +802,11 @@ static void AUDIO_REQ_SetCurrent(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef
798802

799803

800804
/**
801-
* @brief DeviceQualifierDescriptor
802-
* return Device Qualifier descriptor
803-
* @param length : pointer data length
804-
* @retval pointer to descriptor buffer
805-
*/
805+
* @brief DeviceQualifierDescriptor
806+
* return Device Qualifier descriptor
807+
* @param length : pointer data length
808+
* @retval pointer to descriptor buffer
809+
*/
806810
static uint8_t *USBD_AUDIO_GetDeviceQualifierDesc(uint16_t *length)
807811
{
808812
*length = (uint16_t)sizeof(USBD_AUDIO_DeviceQualifierDesc);
@@ -811,10 +815,10 @@ static uint8_t *USBD_AUDIO_GetDeviceQualifierDesc(uint16_t *length)
811815
}
812816

813817
/**
814-
* @brief USBD_AUDIO_RegisterInterface
815-
* @param fops: Audio interface callback
816-
* @retval status
817-
*/
818+
* @brief USBD_AUDIO_RegisterInterface
819+
* @param fops: Audio interface callback
820+
* @retval status
821+
*/
818822
uint8_t USBD_AUDIO_RegisterInterface(USBD_HandleTypeDef *pdev,
819823
USBD_AUDIO_ItfTypeDef *fops)
820824
{

system/Middlewares/ST/STM32_USB_Device_Library/Class/BillBoard/Src/usbd_billboard.c

Lines changed: 49 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* - Initialization and Configuration of high and low layer
88
* - Enumeration as BillBoard Device
99
* - Error management
10-
* @verbatim
10+
* @verbatim
1111
*
1212
* ===================================================================
1313
* BillBoard Class Description
@@ -150,8 +150,12 @@ __ALIGN_BEGIN static uint8_t USBD_BB_CfgDesc[USB_BB_CONFIG_DESC_SIZ] __ALIGN_EN
150150
0x01, /* bNumInterfaces: 1 interface */
151151
0x01, /* bConfigurationValue: Configuration value */
152152
USBD_IDX_CONFIG_STR, /* iConfiguration: Index of string descriptor describing the configuration */
153-
0xC0, /* bmAttributes: bus powered and Support Remote Wake-up */
154-
0x00, /* MaxPower 100 mA: this current is used for detecting Vbus */
153+
#if (USBD_SELF_POWERED == 1U)
154+
0xC0, /* bmAttributes: Bus Powered according to user configuration */
155+
#else
156+
0x80, /* bmAttributes: Bus Powered according to user configuration */
157+
#endif
158+
USBD_MAX_POWER, /* MaxPower 100 mA: this current is used for detecting Vbus */
155159
/* 09 */
156160

157161
/************** Descriptor of BillBoard interface ****************/
@@ -170,15 +174,19 @@ __ALIGN_BEGIN static uint8_t USBD_BB_CfgDesc[USB_BB_CONFIG_DESC_SIZ] __ALIGN_EN
170174
/* USB device Other Speed Configuration Descriptor */
171175
__ALIGN_BEGIN static uint8_t USBD_BB_OtherSpeedCfgDesc[USB_BB_CONFIG_DESC_SIZ] __ALIGN_END =
172176
{
173-
0x09, /* bLength: Configuation Descriptor size */
177+
0x09, /* bLength: Configuration Descriptor size */
174178
USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION,
175179
USB_BB_CONFIG_DESC_SIZ,
176180
0x00,
177181
0x01, /* bNumInterfaces: 1 interface */
178182
0x01, /* bConfigurationValue: */
179183
USBD_IDX_CONFIG_STR, /* iConfiguration: */
180-
0xC0, /* bmAttributes: */
181-
0x00, /* MaxPower 100 mA */
184+
#if (USBD_SELF_POWERED == 1U)
185+
0xC0, /* bmAttributes: Bus Powered according to user configuration */
186+
#else
187+
0x80, /* bmAttributes: Bus Powered according to user configuration */
188+
#endif
189+
USBD_MAX_POWER, /* MaxPower 100 mA */
182190

183191
/************** Descriptor of BillBoard interface ****************/
184192
/* 09 */
@@ -248,50 +256,50 @@ static uint8_t USBD_BB_Setup(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req
248256

249257
switch (req->bmRequest & USB_REQ_TYPE_MASK)
250258
{
251-
case USB_REQ_TYPE_CLASS:
252-
break;
253-
case USB_REQ_TYPE_STANDARD:
254-
switch (req->bRequest)
255-
{
256-
case USB_REQ_GET_STATUS:
257-
if (pdev->dev_state == USBD_STATE_CONFIGURED)
258-
{
259-
(void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U);
260-
}
261-
else
262-
{
263-
USBD_CtlError(pdev, req);
264-
ret = USBD_FAIL;
265-
}
259+
case USB_REQ_TYPE_CLASS:
266260
break;
267-
268-
case USB_REQ_GET_INTERFACE:
269-
if (pdev->dev_state == USBD_STATE_CONFIGURED)
270-
{
271-
(void)USBD_CtlSendData(pdev, (uint8_t *)&AltSetting, 1U);
272-
}
273-
else
261+
case USB_REQ_TYPE_STANDARD:
262+
switch (req->bRequest)
274263
{
275-
USBD_CtlError(pdev, req);
276-
ret = USBD_FAIL;
277-
}
278-
break;
264+
case USB_REQ_GET_STATUS:
265+
if (pdev->dev_state == USBD_STATE_CONFIGURED)
266+
{
267+
(void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U);
268+
}
269+
else
270+
{
271+
USBD_CtlError(pdev, req);
272+
ret = USBD_FAIL;
273+
}
274+
break;
279275

280-
case USB_REQ_SET_INTERFACE:
281-
case USB_REQ_CLEAR_FEATURE:
276+
case USB_REQ_GET_INTERFACE:
277+
if (pdev->dev_state == USBD_STATE_CONFIGURED)
278+
{
279+
(void)USBD_CtlSendData(pdev, (uint8_t *)&AltSetting, 1U);
280+
}
281+
else
282+
{
283+
USBD_CtlError(pdev, req);
284+
ret = USBD_FAIL;
285+
}
286+
break;
287+
288+
case USB_REQ_SET_INTERFACE:
289+
case USB_REQ_CLEAR_FEATURE:
290+
break;
291+
292+
default:
293+
USBD_CtlError(pdev, req);
294+
ret = USBD_FAIL;
295+
break;
296+
}
282297
break;
283298

284299
default:
285300
USBD_CtlError(pdev, req);
286301
ret = USBD_FAIL;
287302
break;
288-
}
289-
break;
290-
291-
default:
292-
USBD_CtlError(pdev, req);
293-
ret = USBD_FAIL;
294-
break;
295303
}
296304

297305
return (uint8_t)ret;

system/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ extern "C" {
6565
#define CDC_DATA_FS_IN_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE
6666
#define CDC_DATA_FS_OUT_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE
6767

68+
#define CDC_REQ_MAX_DATA_SIZE 0x7U
6869
/*---------------------------------------------------------------------*/
6970
/* CDC definitions */
7071
/*---------------------------------------------------------------------*/

0 commit comments

Comments
 (0)