diff --git a/hw/bsp/stm32f070rbnucleo/board.mk b/hw/bsp/stm32f070rbnucleo/board.mk index a9fca5f8..e4036982 100644 --- a/hw/bsp/stm32f070rbnucleo/board.mk +++ b/hw/bsp/stm32f070rbnucleo/board.mk @@ -6,7 +6,7 @@ CFLAGS += \ -mcpu=cortex-m0 \ -mfloat-abi=soft \ -nostdlib -nostartfiles \ - -DCFG_TUSB_MCU=OPT_MCU_STM32F0x0 + -DCFG_TUSB_MCU=OPT_MCU_STM32F0 ST_HAL_DRIVER = hw/mcu/st/st_driver/STM32F0xx_HAL_Driver ST_CMSIS = hw/mcu/st/st_driver/CMSIS/Device/ST/STM32F0xx diff --git a/hw/bsp/stm32f303disco/board.mk b/hw/bsp/stm32f303disco/board.mk index 7a1899a1..f8f689a9 100644 --- a/hw/bsp/stm32f303disco/board.mk +++ b/hw/bsp/stm32f303disco/board.mk @@ -7,7 +7,7 @@ CFLAGS += \ -mfloat-abi=hard \ -mfpu=fpv4-sp-d16 \ -nostdlib -nostartfiles \ - -DCFG_TUSB_MCU=OPT_MCU_STM32F3x3 + -DCFG_TUSB_MCU=OPT_MCU_STM32F3 ST_HAL_DRIVER = hw/mcu/st/st_driver/STM32F3xx_HAL_Driver ST_CMSIS = hw/mcu/st/st_driver/CMSIS/Device/ST/STM32F3xx diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c index 389acb17..1681d641 100644 --- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c +++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c @@ -104,10 +104,13 @@ #include "tusb_option.h" #if (TUSB_OPT_DEVICE_ENABLED) && ( \ - ((CFG_TUSB_MCU) == (OPT_MCU_STM32F0x0)) || ((CFG_TUSB_MCU) == (OPT_MCU_STM32F0x2)) || \ - ((CFG_TUSB_MCU) == (OPT_MCU_STM32F0x8)) || \ - ((CFG_TUSB_MCU) == (OPT_MCU_STM32F1x2)) || ((CFG_TUSB_MCU) == (OPT_MCU_STM32F1x3)) || \ - ((CFG_TUSB_MCU) == (OPT_MCU_STM32F3x2)) || ((CFG_TUSB_MCU) == (OPT_MCU_STM32F3x3)) \ + ((CFG_TUSB_MCU) == OPT_MCU_STM32F0) || \ + (((CFG_TUSB_MCU) == OPT_MCU_STM32F1) && ( \ + defined(stm32f102x6) || defined(stm32f102xb) || \ + defined(stm32f103x6) || defined(stm32f103xb) || \ + defined(stm32f103xe) || defined(stm32f103xg) \ + )) || \ + ((CFG_TUSB_MCU) == OPT_MCU_STM32F3) \ ) // In order to reduce the dependance on HAL, we undefine this. @@ -785,14 +788,13 @@ static void dcd_read_packet_memory(void *__restrict dst, uint16_t src, size_t wN // Interrupt handlers -#if ((CFG_TUSB_MCU) == (OPT_MCU_STM32F0x0)) || ((CFG_TUSB_MCU) == (OPT_MCU_STM32F0x2)) || \ - ((CFG_TUSB_MCU) == (OPT_MCU_STM32F0x8)) +#if (CFG_TUSB_MCU) == (OPT_MCU_STM32F0) void USB_IRQHandler(void) { dcd_fs_irqHandler(); } -#elif ((CFG_TUSB_MCU) == (OPT_MCU_STM32F1x2)) || ((CFG_TUSB_MCU) == (OPT_MCU_STM32F1x3)) +#elif (CFG_TUSB_MCU) == (OPT_MCU_STM32F1) void USB_HP_IRQHandler(void) { dcd_fs_irqHandler(); @@ -805,7 +807,8 @@ void USBWakeUp_IRQHandler(void) { dcd_fs_irqHandler(); } -#elif((CFG_TUSB_MCU) == (OPT_MCU_STM32F3x2)) || ((CFG_TUSB_MCU) == (OPT_MCU_STM32F3x3)) + +#elif (CFG_TUSB_MCU) == (OPT_MCU_STM32F3) // USB defaults to using interrupts 19, 20, and 42 (based on SYSCFG_CFGR1.USB_IT_RMP) // FIXME: Do all three need to be handled, or just the LP one? // USB high-priority interrupt (Channel 19): Triggered only by a correct diff --git a/src/tusb_option.h b/src/tusb_option.h index af2df19c..dc76ce5f 100644 --- a/src/tusb_option.h +++ b/src/tusb_option.h @@ -53,15 +53,10 @@ // ST Synopsis OTG devices #define OPT_MCU_STM32F4 300 ///< ST STM32F4 +#define OPT_MCU_STM32F3 301 ///< ST STM32F0x0 #define OPT_MCU_STM32H7 302 ///< ST STM32H7 -// ST FSDEV Devices -#define OPT_MCU_STM32F0x0 330 ///< ST STM32F0x0 -#define OPT_MCU_STM32F0x2 331 ///< ST STM32F0x2 -#define OPT_MCU_STM32F0x8 332 ///< ST STM32F0x8 -#define OPT_MCU_STM32F1x2 333 ///< ST STM32F1x2 -#define OPT_MCU_STM32F1x3 334 ///< ST STM32F1x3 -#define OPT_MCU_STM32F3x2 335 ///< ST STM32F3x2 -#define OPT_MCU_STM32F3x3 336 ///< ST STM32F3x3 +#define OPT_MCU_STM32F0 303 ///< ST STM32F0 +#define OPT_MCU_STM32F1 304 ///< ST STM32F1 /** @} */