فهرست منبع

l4 use offical st driver repo

hathach 5 سال پیش
والد
کامیت
3b890d2391

+ 12 - 0
.gitmodules

@@ -79,3 +79,15 @@
 [submodule "hw/mcu/st/stm32l0xx_hal_driver"]
 	path = hw/mcu/st/stm32l0xx_hal_driver
 	url = https://github.com/STMicroelectronics/stm32l0xx_hal_driver.git
+[submodule "hw/mcu/st/cmsis_device_l1"]
+	path = hw/mcu/st/cmsis_device_l1
+	url = https://github.com/STMicroelectronics/cmsis_device_l1.git
+[submodule "hw/mcu/st/stm32l1xx_hal_driver"]
+	path = hw/mcu/st/stm32l1xx_hal_driver
+	url = https://github.com/STMicroelectronics/stm32l1xx_hal_driver.git
+[submodule "hw/mcu/st/cmsis_device_l4"]
+	path = hw/mcu/st/cmsis_device_l4
+	url = https://github.com/STMicroelectronics/cmsis_device_l4.git
+[submodule "hw/mcu/st/stm32l4xx_hal_driver"]
+	path = hw/mcu/st/stm32l4xx_hal_driver
+	url = https://github.com/STMicroelectronics/stm32l4xx_hal_driver.git

+ 15 - 10
hw/bsp/stm32l476disco/board.mk

@@ -9,21 +9,26 @@ CFLAGS += \
   -DSTM32L476xx \
   -DCFG_TUSB_MCU=OPT_MCU_STM32L4
 
-ST_HAL_DRIVER = hw/mcu/st/st_driver/STM32L4xx_HAL_Driver
-ST_CMSIS = hw/mcu/st/st_driver/CMSIS/Device/ST/STM32L4xx
+# suppress warning caused by vendor mcu driver
+CFLAGS +=  -Wno-error=maybe-uninitialized -Wno-error=cast-align
+
+ST_FAMILY = l4
+ST_CMSIS = hw/mcu/st/cmsis_device_$(ST_FAMILY)
+ST_HAL_DRIVER = hw/mcu/st/stm32$(ST_FAMILY)xx_hal_driver
 
 # All source paths should be relative to the top level.
 LD_FILE = hw/bsp/$(BOARD)/STM32L476VGTx_FLASH.ld
 
 SRC_C += \
-	$(ST_CMSIS)/Source/Templates/system_stm32l4xx.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_cortex.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_rcc.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_rcc_ex.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_pwr.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_pwr_ex.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_gpio.c
+	$(ST_CMSIS)/Source/Templates/system_stm32$(ST_FAMILY)xx.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_cortex.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_rcc.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_rcc_ex.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_pwr.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_pwr_ex.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_gpio.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_uart.c
 
 SRC_S += \
 	$(ST_CMSIS)/Source/Templates/gcc/startup_stm32l476xx.s

+ 43 - 3
hw/bsp/stm32l476disco/stm32l4xx_hal_conf.h

@@ -48,8 +48,8 @@
 /* #define HAL_FIREWALL_MODULE_ENABLED */
 #define HAL_FLASH_MODULE_ENABLED
 /* #define HAL_NAND_MODULE_ENABLED */
-#define HAL_NOR_MODULE_ENABLED
-#define HAL_SRAM_MODULE_ENABLED
+// #define HAL_NOR_MODULE_ENABLED
+// #define HAL_SRAM_MODULE_ENABLED
 /* #define HAL_HCD_MODULE_ENABLED */ 
 #define HAL_GPIO_MODULE_ENABLED
 //#define HAL_I2C_MODULE_ENABLED
@@ -72,7 +72,7 @@
 /* #define HAL_SWPMI_MODULE_ENABLED */
 /* #define HAL_TIM_MODULE_ENABLED */
 /* #define HAL_TSC_MODULE_ENABLED */
-//#define HAL_UART_MODULE_ENABLED
+#define HAL_UART_MODULE_ENABLED
 /* #define HAL_USART_MODULE_ENABLED */
 /* #define HAL_WWDG_MODULE_ENABLED */
 
@@ -172,6 +172,46 @@
 #define  INSTRUCTION_CACHE_ENABLE     1U
 #define  DATA_CACHE_ENABLE            1U
 
+
+#define  USE_HAL_ADC_REGISTER_CALLBACKS     0U /* ADC register callback disabled     */
+#define  USE_HAL_CEC_REGISTER_CALLBACKS     0U /* CEC register callback disabled     */
+#define  USE_HAL_COMP_REGISTER_CALLBACKS    0U /* COMP register callback disabled    */
+#define  USE_HAL_CRYP_REGISTER_CALLBACKS    0U /* CRYP register callback disabled    */
+#define  USE_HAL_DAC_REGISTER_CALLBACKS     0U /* DAC register callback disabled     */
+#define  USE_HAL_DCMI_REGISTER_CALLBACKS    0U /* DCMI register callback disabled    */
+#define  USE_HAL_DFSDM_REGISTER_CALLBACKS   0U /* DFSDM register callback disabled   */
+#define  USE_HAL_DMA2D_REGISTER_CALLBACKS   0U /* DMA2D register callback disabled   */
+#define  USE_HAL_DSI_REGISTER_CALLBACKS     0U /* DSI register callback disabled     */
+#define  USE_HAL_ETH_REGISTER_CALLBACKS     0U /* ETH register callback disabled     */
+#define  USE_HAL_FDCAN_REGISTER_CALLBACKS   0U /* FDCAN register callback disabled   */
+#define  USE_HAL_NAND_REGISTER_CALLBACKS    0U /* NAND register callback disabled    */
+#define  USE_HAL_NOR_REGISTER_CALLBACKS     0U /* NOR register callback disabled     */
+#define  USE_HAL_SDRAM_REGISTER_CALLBACKS   0U /* SDRAM register callback disabled   */
+#define  USE_HAL_SRAM_REGISTER_CALLBACKS    0U /* SRAM register callback disabled    */
+#define  USE_HAL_HASH_REGISTER_CALLBACKS    0U /* HASH register callback disabled    */
+#define  USE_HAL_HCD_REGISTER_CALLBACKS     0U /* HCD register callback disabled     */
+#define  USE_HAL_HRTIM_REGISTER_CALLBACKS   0U /* HRTIM register callback disabled   */
+#define  USE_HAL_I2C_REGISTER_CALLBACKS     0U /* I2C register callback disabled     */
+#define  USE_HAL_I2S_REGISTER_CALLBACKS     0U /* I2S register callback disabled     */
+#define  USE_HAL_JPEG_REGISTER_CALLBACKS    0U /* JPEG register callback disabled    */
+#define  USE_HAL_LPTIM_REGISTER_CALLBACKS   0U /* LPTIM register callback disabled   */
+#define  USE_HAL_LTDC_REGISTER_CALLBACKS    0U /* LTDC register callback disabled    */
+#define  USE_HAL_MDIOS_REGISTER_CALLBACKS   0U /* MDIO register callback disabled    */
+#define  USE_HAL_OPAMP_REGISTER_CALLBACKS   0U /* MDIO register callback disabled    */
+#define  USE_HAL_PCD_REGISTER_CALLBACKS     0U /* PCD register callback disabled     */
+#define  USE_HAL_QSPI_REGISTER_CALLBACKS    0U /* QSPI register callback disabled    */
+#define  USE_HAL_RNG_REGISTER_CALLBACKS     0U /* RNG register callback disabled     */
+#define  USE_HAL_RTC_REGISTER_CALLBACKS     0U /* RTC register callback disabled     */
+#define  USE_HAL_SAI_REGISTER_CALLBACKS     0U /* SAI register callback disabled     */
+#define  USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
+#define  USE_HAL_SMBUS_REGISTER_CALLBACKS   0U /* SMBUS register callback disabled   */
+#define  USE_HAL_SPI_REGISTER_CALLBACKS     0U /* SPI register callback disabled     */
+#define  USE_HAL_SWPMI_REGISTER_CALLBACKS   0U /* SWPMI register callback disabled   */
+#define  USE_HAL_TIM_REGISTER_CALLBACKS     0U /* TIM register callback disabled     */
+#define  USE_HAL_UART_REGISTER_CALLBACKS    0U /* UART register callback disabled      */
+#define  USE_HAL_USART_REGISTER_CALLBACKS   0U /* USART register callback disabled     */
+#define  USE_HAL_WWDG_REGISTER_CALLBACKS    0U /* WWDG register callback disabled    */
+
 /* ########################## Assert Selection ############################## */
 /**
   * @brief Uncomment the line below to expanse the "assert_param" macro in the

+ 13 - 11
hw/bsp/stm32l4r5nucleo/board.mk

@@ -11,23 +11,25 @@ CFLAGS += \
   -DCFG_TUSB_MCU=OPT_MCU_STM32L4
 
 # suppress warning caused by vendor mcu driver
-CFLAGS +=  -Wno-error=maybe-uninitialized -Wno-error=cast-align
+CFLAGS += -Wno-error=maybe-uninitialized -Wno-error=cast-align
 
-ST_HAL_DRIVER = hw/mcu/st/st_driver/STM32L4xx_HAL_Driver
-ST_CMSIS = hw/mcu/st/st_driver/CMSIS/Device/ST/STM32L4xx
+ST_FAMILY = l4
+ST_CMSIS = hw/mcu/st/cmsis_device_$(ST_FAMILY)
+ST_HAL_DRIVER = hw/mcu/st/stm32$(ST_FAMILY)xx_hal_driver
 
 # All source paths should be relative to the top level.
 LD_FILE = hw/bsp/$(BOARD)/STM32L4RXxI_FLASH.ld
 
 SRC_C += \
-	$(ST_CMSIS)/Source/Templates/system_stm32l4xx.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_cortex.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_rcc.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_rcc_ex.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_gpio.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_uart.c \
-	$(ST_HAL_DRIVER)/Src/stm32l4xx_hal_pwr_ex.c
+	$(ST_CMSIS)/Source/Templates/system_stm32$(ST_FAMILY)xx.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_cortex.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_rcc.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_rcc_ex.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_pwr.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_pwr_ex.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_gpio.c \
+	$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_uart.c
 
 SRC_S += \
 	$(ST_CMSIS)/Source/Templates/gcc/startup_stm32l4r5xx.s

+ 40 - 3
hw/bsp/stm32l4r5nucleo/stm32l4xx_hal_conf.h

@@ -48,8 +48,8 @@
 /* #define HAL_FIREWALL_MODULE_ENABLED */
 #define HAL_FLASH_MODULE_ENABLED
 /* #define HAL_NAND_MODULE_ENABLED */
-#define HAL_NOR_MODULE_ENABLED
-#define HAL_SRAM_MODULE_ENABLED
+// #define HAL_NOR_MODULE_ENABLED
+// #define HAL_SRAM_MODULE_ENABLED
 /* #define HAL_HCD_MODULE_ENABLED */ 
 #define HAL_GPIO_MODULE_ENABLED
 //#define HAL_I2C_MODULE_ENABLED
@@ -172,7 +172,44 @@
 #define  INSTRUCTION_CACHE_ENABLE     1U
 #define  DATA_CACHE_ENABLE            1U
 
-#define  USE_HAL_UART_REGISTER_CALLBACKS       0U /* USART register callback disabled     */
+#define  USE_HAL_ADC_REGISTER_CALLBACKS     0U /* ADC register callback disabled     */
+#define  USE_HAL_CEC_REGISTER_CALLBACKS     0U /* CEC register callback disabled     */
+#define  USE_HAL_COMP_REGISTER_CALLBACKS    0U /* COMP register callback disabled    */
+#define  USE_HAL_CRYP_REGISTER_CALLBACKS    0U /* CRYP register callback disabled    */
+#define  USE_HAL_DAC_REGISTER_CALLBACKS     0U /* DAC register callback disabled     */
+#define  USE_HAL_DCMI_REGISTER_CALLBACKS    0U /* DCMI register callback disabled    */
+#define  USE_HAL_DFSDM_REGISTER_CALLBACKS   0U /* DFSDM register callback disabled   */
+#define  USE_HAL_DMA2D_REGISTER_CALLBACKS   0U /* DMA2D register callback disabled   */
+#define  USE_HAL_DSI_REGISTER_CALLBACKS     0U /* DSI register callback disabled     */
+#define  USE_HAL_ETH_REGISTER_CALLBACKS     0U /* ETH register callback disabled     */
+#define  USE_HAL_FDCAN_REGISTER_CALLBACKS   0U /* FDCAN register callback disabled   */
+#define  USE_HAL_NAND_REGISTER_CALLBACKS    0U /* NAND register callback disabled    */
+#define  USE_HAL_NOR_REGISTER_CALLBACKS     0U /* NOR register callback disabled     */
+#define  USE_HAL_SDRAM_REGISTER_CALLBACKS   0U /* SDRAM register callback disabled   */
+#define  USE_HAL_SRAM_REGISTER_CALLBACKS    0U /* SRAM register callback disabled    */
+#define  USE_HAL_HASH_REGISTER_CALLBACKS    0U /* HASH register callback disabled    */
+#define  USE_HAL_HCD_REGISTER_CALLBACKS     0U /* HCD register callback disabled     */
+#define  USE_HAL_HRTIM_REGISTER_CALLBACKS   0U /* HRTIM register callback disabled   */
+#define  USE_HAL_I2C_REGISTER_CALLBACKS     0U /* I2C register callback disabled     */
+#define  USE_HAL_I2S_REGISTER_CALLBACKS     0U /* I2S register callback disabled     */
+#define  USE_HAL_JPEG_REGISTER_CALLBACKS    0U /* JPEG register callback disabled    */
+#define  USE_HAL_LPTIM_REGISTER_CALLBACKS   0U /* LPTIM register callback disabled   */
+#define  USE_HAL_LTDC_REGISTER_CALLBACKS    0U /* LTDC register callback disabled    */
+#define  USE_HAL_MDIOS_REGISTER_CALLBACKS   0U /* MDIO register callback disabled    */
+#define  USE_HAL_OPAMP_REGISTER_CALLBACKS   0U /* MDIO register callback disabled    */
+#define  USE_HAL_PCD_REGISTER_CALLBACKS     0U /* PCD register callback disabled     */
+#define  USE_HAL_QSPI_REGISTER_CALLBACKS    0U /* QSPI register callback disabled    */
+#define  USE_HAL_RNG_REGISTER_CALLBACKS     0U /* RNG register callback disabled     */
+#define  USE_HAL_RTC_REGISTER_CALLBACKS     0U /* RTC register callback disabled     */
+#define  USE_HAL_SAI_REGISTER_CALLBACKS     0U /* SAI register callback disabled     */
+#define  USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
+#define  USE_HAL_SMBUS_REGISTER_CALLBACKS   0U /* SMBUS register callback disabled   */
+#define  USE_HAL_SPI_REGISTER_CALLBACKS     0U /* SPI register callback disabled     */
+#define  USE_HAL_SWPMI_REGISTER_CALLBACKS   0U /* SWPMI register callback disabled   */
+#define  USE_HAL_TIM_REGISTER_CALLBACKS     0U /* TIM register callback disabled     */
+#define  USE_HAL_UART_REGISTER_CALLBACKS    0U /* UART register callback disabled      */
+#define  USE_HAL_USART_REGISTER_CALLBACKS   0U /* USART register callback disabled     */
+#define  USE_HAL_WWDG_REGISTER_CALLBACKS    0U /* WWDG register callback disabled    */
 
 /* ########################## Assert Selection ############################## */
 /**

+ 1 - 0
hw/mcu/st/cmsis_device_l1

@@ -0,0 +1 @@
+Subproject commit 7f16ec0a1c4c063f84160b4cc6bf88ad554a823e

+ 1 - 0
hw/mcu/st/cmsis_device_l4

@@ -0,0 +1 @@
+Subproject commit 6ca7312fa6a5a460b5a5a63d66da527fdd8359a6

+ 1 - 0
hw/mcu/st/stm32l1xx_hal_driver

@@ -0,0 +1 @@
+Subproject commit 44efc446fa69ed8344e7fd966e68ed11043b35d9

+ 1 - 0
hw/mcu/st/stm32l4xx_hal_driver

@@ -0,0 +1 @@
+Subproject commit aee3d5bf283ae5df87532b781bdd01b7caf256fc