diff options
Diffstat (limited to 'stmhal/stm32_it.c')
-rw-r--r-- | stmhal/stm32_it.c | 64 |
1 files changed, 43 insertions, 21 deletions
diff --git a/stmhal/stm32_it.c b/stmhal/stm32_it.c index 371d20dd7c..fec663ea74 100644 --- a/stmhal/stm32_it.c +++ b/stmhal/stm32_it.c @@ -80,8 +80,8 @@ #include "dma.h" extern void __fatal_error(const char*); -extern PCD_HandleTypeDef pcd_handle; - +extern PCD_HandleTypeDef pcd_fs_handle; +extern PCD_HandleTypeDef pcd_hs_handle; /******************************************************************************/ /* Cortex-M4 Processor Exceptions Handlers */ /******************************************************************************/ @@ -305,28 +305,25 @@ void SysTick_Handler(void) { * @retval None */ #if defined(USE_USB_FS) -#define OTG_XX_IRQHandler OTG_FS_IRQHandler -#define OTG_XX_WKUP_IRQHandler OTG_FS_WKUP_IRQHandler -#elif defined(USE_USB_HS) -#define OTG_XX_IRQHandler OTG_HS_IRQHandler -#define OTG_XX_WKUP_IRQHandler OTG_HS_WKUP_IRQHandler +void OTG_FS_IRQHandler(void) { + HAL_PCD_IRQHandler(&pcd_fs_handle); +} #endif - -#if defined(OTG_XX_IRQHandler) -void OTG_XX_IRQHandler(void) { - HAL_PCD_IRQHandler(&pcd_handle); +#if defined(USE_USB_HS) +void OTG_HS_IRQHandler(void) { + HAL_PCD_IRQHandler(&pcd_hs_handle); } #endif +#if defined(USE_USB_FS) || defined(USE_USB_HS) /** - * @brief This function handles USB OTG FS or HS Wakeup IRQ Handler. - * @param None + * @brief This function handles USB OTG Common FS/HS Wakeup functions. + * @param *pcd_handle for FS or HS * @retval None */ -#if defined(OTG_XX_WKUP_IRQHandler) -void OTG_XX_WKUP_IRQHandler(void) { +STATIC void OTG_CMD_WKUP_Handler(PCD_HandleTypeDef *pcd_handle) { - if ((&pcd_handle)->Init.low_power_enable) { + if (pcd_handle->Init.low_power_enable) { /* Reset SLEEPDEEP bit of Cortex System Control Register */ SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); @@ -353,16 +350,41 @@ void OTG_XX_WKUP_IRQHandler(void) { {} /* ungate PHY clock */ - __HAL_PCD_UNGATE_PHYCLOCK((&pcd_handle)); + __HAL_PCD_UNGATE_PHYCLOCK(pcd_handle); } -#ifdef USE_USB_FS + +} +#endif + +#if defined(USE_USB_FS) +/** + * @brief This function handles USB OTG FS Wakeup IRQ Handler. + * @param None + * @retval None + */ +void OTG_FS_WKUP_IRQHandler(void) { + + OTG_CMD_WKUP_Handler(&pcd_fs_handle); + /* Clear EXTI pending Bit*/ __HAL_USB_FS_EXTI_CLEAR_FLAG(); -#elif defined(USE_USB_HS) - /* Clear EXTI pending Bit*/ - __HAL_USB_HS_EXTI_CLEAR_FLAG(); + +} #endif +#if defined(USE_USB_HS) +/** + * @brief This function handles USB OTG HS Wakeup IRQ Handler. + * @param None + * @retval None + */ +void OTG_HS_WKUP_IRQHandler(void) { + + OTG_CMD_WKUP_Handler(&pcd_hs_handle); + + /* Clear EXTI pending Bit*/ + __HAL_USB_HS_EXTI_CLEAR_FLAG(); + } #endif |