Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0aa8cc0

Browse files
committed
[USB] Update STM32 USB Host library to v3.3.4
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parentad13094 commit0aa8cc0

File tree

9 files changed

+517
-266
lines changed

9 files changed

+517
-266
lines changed

‎system/Middlewares/ST/STM32_USB_Host_Library/Class/AUDIO/Src/usbh_audio.c

Lines changed: 121 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ static USBH_StatusTypeDef USBH_AUDIO_InterfaceInit(USBH_HandleTypeDef *phost)
277277
{
278278
USBH_AUDIO_BuildHeadphonePath(phost);
279279

280-
AUDIO_Handle->headphone.Pipe=USBH_AllocPipe(phost,AUDIO_Handle->headphone.Ep);
280+
AUDIO_Handle->headphone.Pipe=USBH_AllocPipe(phost,AUDIO_Handle->headphone.Ep);
281281

282282
/* Open pipe for IN endpoint */
283283
USBH_OpenPipe(phost,
@@ -289,13 +289,12 @@ static USBH_StatusTypeDef USBH_AUDIO_InterfaceInit(USBH_HandleTypeDef *phost)
289289
AUDIO_Handle->headphone.EpSize);
290290

291291
USBH_LL_SetToggle(phost,AUDIO_Handle->headphone.Pipe,0U);
292-
293292
}
294293

295294
if (AUDIO_Handle->microphone.supported==1U)
296295
{
297296
USBH_AUDIO_BuildMicrophonePath(phost);
298-
AUDIO_Handle->microphone.Pipe=USBH_AllocPipe(phost,AUDIO_Handle->microphone.Ep);
297+
AUDIO_Handle->microphone.Pipe=USBH_AllocPipe(phost,AUDIO_Handle->microphone.Ep);
299298

300299
/* Open pipe for IN endpoint */
301300
USBH_OpenPipe(phost,
@@ -389,143 +388,178 @@ static USBH_StatusTypeDef USBH_AUDIO_ClassRequest(USBH_HandleTypeDef *phost)
389388
/* Switch AUDIO REQ state machine */
390389
switch (AUDIO_Handle->req_state)
391390
{
392-
caseAUDIO_REQ_INIT:
393-
caseAUDIO_REQ_SET_DEFAULT_IN_INTERFACE:
394-
if (AUDIO_Handle->microphone.supported==1U)
395-
{
396-
req_status=USBH_SetInterface(phost,
397-
AUDIO_Handle->microphone.interface,
398-
0U);
391+
caseAUDIO_REQ_INIT:
392+
caseAUDIO_REQ_SET_DEFAULT_IN_INTERFACE:
393+
if (AUDIO_Handle->microphone.supported==1U)
394+
{
395+
req_status=USBH_SetInterface(phost,
396+
AUDIO_Handle->microphone.interface,
397+
0U);
399398

400-
if (req_status==USBH_OK)
401-
{
402-
AUDIO_Handle->req_state=AUDIO_REQ_SET_DEFAULT_OUT_INTERFACE;
403-
}
399+
if (req_status==USBH_OK)
400+
{
401+
AUDIO_Handle->req_state=AUDIO_REQ_SET_DEFAULT_OUT_INTERFACE;
402+
}
403+
elseif (req_status==USBH_NOT_SUPPORTED)
404+
{
405+
USBH_ErrLog("Control error: AUDIO: Device Set interface request failed");
406+
status=USBH_FAIL;
404407
}
405408
else
406409
{
407-
AUDIO_Handle->req_state=AUDIO_REQ_SET_DEFAULT_OUT_INTERFACE;
410+
/* .. */
411+
}
412+
}
413+
else
414+
{
415+
AUDIO_Handle->req_state=AUDIO_REQ_SET_DEFAULT_OUT_INTERFACE;
408416

409417
#if (USBH_USE_OS==1U)
410-
phost->os_msg= (uint32_t)USBH_URB_EVENT;
418+
phost->os_msg= (uint32_t)USBH_URB_EVENT;
411419
#if (osCMSIS<0x20000U)
412-
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
420+
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
413421
#else
414-
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
422+
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
415423
#endif
416424
#endif
417-
}
418-
break;
425+
}
426+
break;
419427

420-
caseAUDIO_REQ_SET_DEFAULT_OUT_INTERFACE:
421-
if (AUDIO_Handle->headphone.supported==1U)
422-
{
423-
req_status=USBH_SetInterface(phost,
424-
AUDIO_Handle->headphone.interface,
425-
0U);
428+
caseAUDIO_REQ_SET_DEFAULT_OUT_INTERFACE:
429+
if (AUDIO_Handle->headphone.supported==1U)
430+
{
431+
req_status=USBH_SetInterface(phost,
432+
AUDIO_Handle->headphone.interface,
433+
0U);
426434

427-
if (req_status==USBH_OK)
428-
{
429-
AUDIO_Handle->req_state=AUDIO_REQ_CS_REQUESTS;
430-
AUDIO_Handle->cs_req_state=AUDIO_REQ_GET_VOLUME;
435+
if (req_status==USBH_OK)
436+
{
437+
AUDIO_Handle->req_state=AUDIO_REQ_CS_REQUESTS;
438+
AUDIO_Handle->cs_req_state=AUDIO_REQ_GET_VOLUME;
431439

432-
AUDIO_Handle->temp_feature=AUDIO_Handle->headphone.asociated_feature;
433-
AUDIO_Handle->temp_channels=AUDIO_Handle->headphone.asociated_channels;
434-
}
440+
AUDIO_Handle->temp_feature=AUDIO_Handle->headphone.asociated_feature;
441+
AUDIO_Handle->temp_channels=AUDIO_Handle->headphone.asociated_channels;
442+
}
443+
elseif (req_status==USBH_NOT_SUPPORTED)
444+
{
445+
USBH_ErrLog("Control error: AUDIO: Device Set interface request failed");
446+
status=USBH_FAIL;
435447
}
436448
else
437449
{
438-
AUDIO_Handle->req_state=AUDIO_REQ_CS_REQUESTS;
439-
AUDIO_Handle->cs_req_state=AUDIO_REQ_GET_VOLUME;
450+
/* .. */
451+
}
452+
}
453+
else
454+
{
455+
AUDIO_Handle->req_state=AUDIO_REQ_CS_REQUESTS;
456+
AUDIO_Handle->cs_req_state=AUDIO_REQ_GET_VOLUME;
440457

441458
#if (USBH_USE_OS==1U)
442-
phost->os_msg= (uint32_t)USBH_URB_EVENT;
459+
phost->os_msg= (uint32_t)USBH_URB_EVENT;
443460
#if (osCMSIS<0x20000U)
444-
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
461+
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
445462
#else
446-
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
463+
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
447464
#endif
448465
#endif
449-
}
450-
break;
466+
}
467+
break;
468+
469+
caseAUDIO_REQ_CS_REQUESTS:
470+
if (USBH_AUDIO_HandleCSRequest(phost)==USBH_OK)
471+
{
472+
AUDIO_Handle->req_state=AUDIO_REQ_SET_IN_INTERFACE;
473+
}
474+
break;
451475

452-
caseAUDIO_REQ_CS_REQUESTS:
453-
if (USBH_AUDIO_HandleCSRequest(phost)==USBH_OK)
476+
caseAUDIO_REQ_SET_IN_INTERFACE:
477+
if (AUDIO_Handle->microphone.supported==1U)
478+
{
479+
req_status=USBH_SetInterface(phost,
480+
AUDIO_Handle->microphone.interface,
481+
AUDIO_Handle->microphone.AltSettings);
482+
483+
if (req_status==USBH_OK)
454484
{
455-
AUDIO_Handle->req_state=AUDIO_REQ_SET_IN_INTERFACE;
485+
AUDIO_Handle->req_state=AUDIO_REQ_SET_OUT_INTERFACE;
456486
}
457-
break;
458-
459-
caseAUDIO_REQ_SET_IN_INTERFACE:
460-
if (AUDIO_Handle->microphone.supported==1U)
487+
elseif (req_status==USBH_NOT_SUPPORTED)
461488
{
462-
req_status=USBH_SetInterface(phost,
463-
AUDIO_Handle->microphone.interface,
464-
AUDIO_Handle->microphone.AltSettings);
465-
466-
if (req_status==USBH_OK)
467-
{
468-
AUDIO_Handle->req_state=AUDIO_REQ_SET_OUT_INTERFACE;
469-
}
489+
USBH_ErrLog("Control error: AUDIO: Device Set interface request failed");
490+
status=USBH_FAIL;
470491
}
471492
else
472493
{
473-
AUDIO_Handle->req_state=AUDIO_REQ_SET_OUT_INTERFACE;
494+
/* .. */
495+
}
496+
}
497+
else
498+
{
499+
AUDIO_Handle->req_state=AUDIO_REQ_SET_OUT_INTERFACE;
474500

475501
#if (USBH_USE_OS==1U)
476-
phost->os_msg= (uint32_t)USBH_URB_EVENT;
502+
phost->os_msg= (uint32_t)USBH_URB_EVENT;
477503
#if (osCMSIS<0x20000U)
478-
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
504+
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
479505
#else
480-
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
506+
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
481507
#endif
482508
#endif
509+
}
510+
break;
511+
caseAUDIO_REQ_SET_OUT_INTERFACE:
512+
if (AUDIO_Handle->headphone.supported==1U)
513+
{
514+
req_status=USBH_SetInterface(phost,
515+
AUDIO_Handle->headphone.interface,
516+
AUDIO_Handle->headphone.AltSettings);
517+
518+
if (req_status==USBH_OK)
519+
{
520+
AUDIO_Handle->req_state=AUDIO_REQ_IDLE;
483521
}
484-
break;
485-
caseAUDIO_REQ_SET_OUT_INTERFACE:
486-
if (AUDIO_Handle->headphone.supported==1U)
522+
elseif (req_status==USBH_NOT_SUPPORTED)
487523
{
488-
req_status=USBH_SetInterface(phost,
489-
AUDIO_Handle->headphone.interface,
490-
AUDIO_Handle->headphone.AltSettings);
491-
492-
if (req_status==USBH_OK)
493-
{
494-
AUDIO_Handle->req_state=AUDIO_REQ_IDLE;
495-
}
496-
524+
USBH_ErrLog("Control error: AUDIO: Device Set interface request failed");
525+
status=USBH_FAIL;
497526
}
498527
else
499528
{
500-
AUDIO_Handle->req_state=AUDIO_REQ_IDLE;
529+
/* .. */
530+
}
531+
}
532+
else
533+
{
534+
AUDIO_Handle->req_state=AUDIO_REQ_IDLE;
501535

502536
#if (USBH_USE_OS==1U)
503-
phost->os_msg= (uint32_t)USBH_URB_EVENT;
537+
phost->os_msg= (uint32_t)USBH_URB_EVENT;
504538
#if (osCMSIS<0x20000U)
505-
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
539+
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
506540
#else
507-
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
541+
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
508542
#endif
509543
#endif
510-
}
511-
break;
512-
caseAUDIO_REQ_IDLE:
513-
AUDIO_Handle->play_state=AUDIO_PLAYBACK_INIT;
514-
phost->pUser(phost,HOST_USER_CLASS_ACTIVE);
515-
status=USBH_OK;
544+
}
545+
break;
546+
caseAUDIO_REQ_IDLE:
547+
AUDIO_Handle->play_state=AUDIO_PLAYBACK_INIT;
548+
phost->pUser(phost,HOST_USER_CLASS_ACTIVE);
549+
status=USBH_OK;
516550

517551
#if (USBH_USE_OS==1U)
518-
phost->os_msg= (uint32_t)USBH_CLASS_EVENT;
552+
phost->os_msg= (uint32_t)USBH_CLASS_EVENT;
519553
#if (osCMSIS<0x20000U)
520-
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
554+
(void)osMessagePut(phost->os_event,phost->os_msg,0U);
521555
#else
522-
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
556+
(void)osMessageQueuePut(phost->os_event,&phost->os_msg,0U,NULL);
523557
#endif
524558
#endif
525-
break;
559+
break;
526560

527-
default:
528-
break;
561+
default:
562+
break;
529563
}
530564
returnstatus;
531565
}

‎system/Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Src/usbh_cdc.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,15 +307,24 @@ static USBH_StatusTypeDef USBH_CDC_InterfaceDeInit(USBH_HandleTypeDef *phost)
307307
*/
308308
staticUSBH_StatusTypeDefUSBH_CDC_ClassRequest(USBH_HandleTypeDef*phost)
309309
{
310-
USBH_StatusTypeDefstatus=USBH_FAIL;
310+
USBH_StatusTypeDefstatus;
311311
CDC_HandleTypeDef*CDC_Handle= (CDC_HandleTypeDef*)phost->pActiveClass->pData;
312312

313-
/*Issue the get line coding request*/
314-
status=GetLineCoding(phost,&CDC_Handle->LineCoding);
313+
/*Issue the get line coding request*/
314+
status=GetLineCoding(phost,&CDC_Handle->LineCoding);
315315
if (status==USBH_OK)
316316
{
317317
phost->pUser(phost,HOST_USER_CLASS_ACTIVE);
318318
}
319+
elseif (status==USBH_NOT_SUPPORTED)
320+
{
321+
USBH_ErrLog("Control error: CDC: Device Get Line Coding configuration failed");
322+
}
323+
else
324+
{
325+
/* .. */
326+
}
327+
319328
returnstatus;
320329
}
321330

@@ -392,7 +401,7 @@ static USBH_StatusTypeDef USBH_CDC_Process(USBH_HandleTypeDef *phost)
392401
if (req_status==USBH_OK)
393402
{
394403
/*Change the state to waiting*/
395-
CDC_Handle->state=CDC_IDLE_STATE;
404+
CDC_Handle->state=CDC_IDLE_STATE;
396405
}
397406
break;
398407

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp