Переглянути джерело

BSP support for G0, G4, H7.

Can't test H7 because some restricted downloads needed.
Konstantin Oblaukhov 5 роки тому
батько
коміт
45360e4e8c

+ 63 - 11
cmake/FindBSP.cmake

@@ -22,7 +22,6 @@ set(BSP_F1_COMPONENTS
 )
 set(BSP_F1_SOURCES_STM3210C_EVAL accelerometer audio eeprom io lcd sd ts)
 set(BSP_F1_SOURCES_STM3210E_EVAL audio lcd nand nor sd serialflash sram tsensor)
-set(BSP_F1_DEVICE_STM32F1xx_Nucleo F103RB)
 set(BSP_F1_DEVICE_STM32VL_Discovery F100RB)
 set(BSP_F1_DEVICE_STM3210C_EVAL F107VC)
 set(BSP_F1_DEVICE_STM3210E_EVAL F103ZE)
@@ -34,7 +33,6 @@ set(BSP_F2_COMPONENTS
     cs43l22 ili9320 ili9325 ili9341 ov2640 st7735 stmpe811
 )
 set(BSP_F2_SOURCES_STM322xG_EVAL audio camera eeprom io lcd sd sram ts)
-set(BSP_F2_DEVICE_STM32F2xx_Nucleo_144 F207ZG)
 set(BSP_F2_DEVICE_STM322xG_EVAL F207IG)
 
 set(BSP_F3_BOARDS 
@@ -50,7 +48,6 @@ set(BSP_F3_SOURCES_STM32303C_EVAL audio eeprom lcd sd tsensor)
 set(BSP_F3_SOURCES_STM32303E_EVAL audio eeprom lcd sd tsensor)
 set(BSP_F3_SOURCES_STM32373C_EVAL audio eeprom lcd sd tsensor)
 set(BSP_F3_DEVICE_STM32F3_Discovery F303VC)
-set(BSP_F3_DEVICE_STM32F3xx_Nucleo_144 F303ZE)
 set(BSP_F3_DEVICE_STM32F3348_Discovery F334C8)
 set(BSP_F3_DEVICE_STM32303C_EVAL F303VC)
 set(BSP_F3_DEVICE_STM32303E_EVAL F303VE)
@@ -116,6 +113,61 @@ set(BSP_F7_DEVICE_STM32F7508_Discovery F750N8)
 set(BSP_F7_DEVICE_STM32746G_Discovery F746NG)
 set(BSP_F7_DEVICE_STM32756G_EVAL F756NG)
 
+set(BSP_G0_BOARDS
+    STM32G0xx_Nucleo STM32G0xx_Nucleo_32 STM32G071B-Discovery STM32G081B_EVAL 
+    STM32G0316-Discovery
+)
+set(BSP_G0_COMPONENTS 
+    hx8347d ina230 sn65dp141 ssd1315 st7735 stlm75 tusb546
+)
+set(BSP_G0_DIR_STM32G0316_Discovery STM32G0316-DISCO)
+set(BSP_G0_SOURCES_STM32G071B_Discovery lcd pwr pwrmon)
+set(BSP_G0_SOURCES_STM32G081B_EVAL lcd mux pwr sd tsensor)
+set(BSP_G0_DEVICE_STM32G071B_Discovery G071RB)
+set(BSP_G0_DEVICE_STM32G081B_EVAL G081RB)
+set(BSP_G0_DEVICE_STM32G0316_Discovery G031J6)
+
+set(BSP_G4_BOARDS
+    B-G474E-DPOW1 STM32G4xx_Nucleo STM32G474E-EVAL
+)
+set(BSP_G4_COMPONENTS 
+    hx8347d mfxstm32l152 mt25ql512abb st7735 stts751 wm8994
+)
+set(BSP_G4_SOURCES_B-G474E-DPOW1 usbpd_pwr)
+set(BSP_G4_SOURCES_STM32G481B_EVAL audio bus env_sensor idd io lcd qspi sd smartcard sram usbpd_pwr)
+set(BSP_G4_DEVICE_B_G474E_DPOW1 G474RE)
+set(BSP_G4_DEVICE_STM32G474E_EVAL G474QE)
+
+set(BSP_H7_BOARDS
+    STM32H7B3I-Discovery STM32H7B3I-EVAL STM32H7xx_Nucleo STM32H743I-EVAL
+    STM32H745I-Discovery STM32H747I-Discovery STM32H747I-EVAL 
+    STM32H750B-Discovery
+)
+set(BSP_H7_COMPONENTS 
+    adv7533 ampire480272 ampire640480 cs42l51 es_wifi exc7200 ft6x06 ft5336 
+    is42s16800j is42s32800g is42s32800j lan8742 m24lr64 mfxstm32l152 
+    mt25tl01g mt48lc4m32b2 mx25lm51245g otm8009a ov5640 ov9655 rk043fn48h 
+    rk070er9427 s5k5cag st7735 stmpe811 ts3510 wm8994
+)
+set(BSP_H7_DIR_STM32H7B3I_Discovery STM32H7B3I-DK)
+set(BSP_H7_DIR_STM32H745I_Discovery STM32H745I-DISCO)
+set(BSP_H7_DIR_STM32H747I_Discovery STM32H747I-DISCO)
+set(BSP_H7_DIR_STM32H750B_Discovery STM32H750B-DK)
+set(BSP_H7_SOURCES_STM32H7B3I_Discovery audio bus camera eeprom lcd ospi sd sdram ts)
+set(BSP_H7_SOURCES_STM32H7B3I_EVAL audio bus camera eeprom io lcd nor ospi sd sdram sram ts)
+set(BSP_H7_SOURCES_STM32H743I_EVAL audio bus eeprom io lcd nor qspi sd sdram sram ts)
+set(BSP_H7_SOURCES_STM32H745I_Discovery audio bus lcd mmc qspi sdram ts)
+set(BSP_H7_SOURCES_STM32H747I_Discovery audio bus camera lcd qspi sd sdram ts)
+set(BSP_H7_SOURCES_STM32H747I_EVAL audio bus eeprom io lcd nor qspi sd sdram sram ts)
+set(BSP_H7_SOURCES_STM32H750B_Discovery audio bus lcd mmc qspi sdram ts)
+set(BSP_H7_DEVICE_STM32H7B3I_Discovery H7B3LI)
+set(BSP_H7_DEVICE_STM32H7B3I_EVAL H7B3LI)
+set(BSP_H7_DEVICE_STM32H743I_EVAL H743XI)
+set(BSP_H7_DEVICE_STM32H745I_Discovery H745XI)
+set(BSP_H7_DEVICE_STM32H747I_Discovery H747XI)
+set(BSP_H7_DEVICE_STM32H747I_EVAL H743XI)
+set(BSP_H7_DEVICE_STM32H750B_Discovery H750XB)
+
 if(NOT BSP_FIND_COMPONENTS)
     set(BSP_FIND_COMPONENTS 
         STM32F0 STM32F1 STM32F2 STM32F3 STM32F4 STM32F7
@@ -161,23 +213,23 @@ foreach(COMP ${BSP_FIND_COMPONENTS})
     foreach(BOARD ${BSP_${FAMILY}_BOARDS})
         string(REPLACE "-" "_" BOARD_CANONICAL ${BOARD})
         string(TOLOWER ${BOARD_CANONICAL} BOARD_CANONICAL_L)
-        
-        find_file(BSP_${BOARD_CANONICAL}_SOURCE
-            NAMES ${BOARD_CANONICAL_L}.c
-            PATHS "${BSP_${FAMILY}_PATH}/${BOARD}"
+
+        find_path(BSP_${BOARD_CANONICAL}_PATH
+            NAMES ${BOARD_CANONICAL_L}.h
+            PATHS "${BSP_${FAMILY}_PATH}/${BOARD}" "${BSP_${FAMILY}_PATH}/${BSP_${FAMILY}_DIR_${BOARD_CANONICAL}}"
             NO_DEFAULT_PATH
         )
-        if (NOT BSP_${BOARD_CANONICAL}_SOURCE)
+        if (NOT BSP_${BOARD_CANONICAL}_PATH)
             continue()
         endif()
         
         add_library(BSP::STM32::${BOARD_CANONICAL} INTERFACE IMPORTED)
         target_link_libraries(BSP::STM32::${BOARD_CANONICAL} INTERFACE BSP::STM32::${FAMILY} CMSIS::STM32::${FAMILY})
-        target_include_directories(BSP::STM32::${BOARD_CANONICAL} INTERFACE "${BSP_${FAMILY}_PATH}/${BOARD}")
-        target_sources(BSP::STM32::${BOARD_CANONICAL} INTERFACE "${BSP_${BOARD_CANONICAL}_SOURCE}")
+        target_include_directories(BSP::STM32::${BOARD_CANONICAL} INTERFACE "${BSP_${BOARD_CANONICAL}_PATH}")
+        target_sources(BSP::STM32::${BOARD_CANONICAL} INTERFACE "${BSP_${BOARD_CANONICAL}_PATH}/${BOARD_CANONICAL_L}.c")
         
         foreach(SRC ${BSP_${FAMILY}_SOURCES_${BOARD_CANONICAL}})
-            target_sources(BSP::STM32::${BOARD_CANONICAL} INTERFACE "${BSP_${FAMILY}_PATH}/${BOARD}/${BOARD_CANONICAL_L}_${SRC}.c")
+            target_sources(BSP::STM32::${BOARD_CANONICAL} INTERFACE "${BSP_${BOARD_CANONICAL}_PATH}/${BOARD_CANONICAL_L}_${SRC}.c")
         endforeach()
         if(BSP_${FAMILY}_DEVICE_${BOARD_CANONICAL})
             target_link_libraries(BSP::STM32::${BOARD_CANONICAL} INTERFACE CMSIS::STM32::${BSP_${FAMILY}_DEVICE_${BOARD_CANONICAL}})

+ 9 - 1
tests/bsp/CMakeLists.txt

@@ -2,16 +2,24 @@ cmake_minimum_required(VERSION 3.8)
 set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/stm32_gcc.cmake)
 
 if(NOT TEST_FAMILIES)
-    set(TEST_FAMILIES F0 F1 F2 F3 F4 F7)
+    # Can't test H7 because it needs some non-free components
+    set(TEST_FAMILIES F0 F1 F2 F3 F4 F7 G0 G4)
 endif()
 
 set(DEVICE_STM32F0xx_Nucleo_32 F031K6)
 set(DEVICE_STM32F0xx_Nucleo F030R8)
+set(DEVICE_STM32F1xx_Nucleo F103RB)
+set(DEVICE_STM32F2xx_Nucleo_144 F207ZG)
 set(DEVICE_STM32F3xx_Nucleo_32 F303K8)
 set(DEVICE_STM32F3xx_Nucleo F334R8)
+set(DEVICE_STM32F3xx_Nucleo_144 F303ZE)
 set(DEVICE_STM32F4xx_Nucleo_144 F429ZI)
 set(DEVICE_STM32F4xx_Nucleo F446RE)
 set(DEVICE_STM32F7xx_Nucleo_144 F746ZG)
+set(DEVICE_STM32G0xx_Nucleo G070RB)
+set(DEVICE_STM32G0xx_Nucleo_32 G031K8)
+set(DEVICE_STM32G4xx_Nucleo G474RE)
+set(DEVICE_STM32H7xx_Nucleo H7A3ZI)
 set(DEFINES_STM32469I_EVAL USE_IOEXPANDER)
 set(DEFINES_STM32F769I_EVAL USE_IOEXPANDER) 
 

+ 90 - 0
tests/bsp/b_g474e_dpow1_conf.h

@@ -0,0 +1,90 @@
+/**
+  ******************************************************************************
+  * @file    b_g474e_dpow1_conf_template.h
+  * @author  MCD Application Team
+  * @brief   B-G474E-DPOW1 board configuration file.
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
+  * All rights reserved.</center></h2>
+  *
+  * This software component is licensed by ST under BSD 3-Clause license,
+  * the "License"; You may not use this file except in compliance with the
+  * License. You may obtain a copy of the License at:
+  *                        opensource.org/licenses/BSD-3-Clause
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef B_G474E_DPOW1_CONF_H
+#define B_G474E_DPOW1_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32g4xx_hal.h"
+
+/** @addtogroup BSP
+  * @{
+  */
+
+/** @addtogroup B-G474E-DPOW1
+  * @{
+  */
+
+/** @addtogroup B-G474E-DPOW1_CONFIG
+  * @{
+  */
+
+/** @addtogroup B-G474E-DPOW1_CONFIG_Exported_Constants Exported Constants
+  * @{
+  */
+
+/* JOYstick define */
+#define USE_BSP_JOY_FEATURE                 1U
+
+/* COM define */
+#define USE_BSP_COM_FEATURE                 0U
+
+/* COM LOG define */
+#define USE_COM_LOG                         0U
+
+/* USBPD BSP PWR TRACE define */
+#define USE_BSP_PWR_TRACE                 0U
+
+#if (USE_BSP_PWR_TRACE > 0u)
+#define USBPD_PWR_TRACE(_PORT_,...)  UTIL_ADV_TRACE_FSend(__VA_ARGS__)
+#else
+#define USBPD_PWR_TRACE(_PORT_,...)
+#endif /* USE_BSP_PWR_TRACE */
+
+/* IRQ priorities */
+#define BSP_JOY_SEL_IT_PRIORITY            15U
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* B_G474E_DPOW1_CONF_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 115 - 0
tests/bsp/stm32g474e_eval_conf.h

@@ -0,0 +1,115 @@
+/**
+  ******************************************************************************
+  * @file    stm32g474e_eval_conf_template.h
+  * @author  MCD Application Team
+  * @brief   STM32G474E-EVAL board configuration file.
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
+  * All rights reserved.</center></h2>
+  *
+  * This software component is licensed by ST under BSD 3-Clause license,
+  * the "License"; You may not use this file except in compliance with the
+  * License. You may obtain a copy of the License at:
+  *                        opensource.org/licenses/BSD-3-Clause
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef STM32G474E_EVAL_CONF_H
+#define STM32G474E_EVAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32g4xx_hal.h"
+#include "stm32g474e_eval_errno.h"
+/** @addtogroup BSP
+  * @{
+  */
+
+/** @addtogroup STM32G474E-EVAL
+  * @{
+  */
+
+/** @defgroup STM32G474E-EVAL_CONFIG STM32G474E-EVAL CONFIG
+  * @{
+  */
+
+/** @defgroup STM32G474E-EVAL_CONFIG_Exported_Constants Exported Constants
+  * @{
+  */
+
+/* COM define */
+#define USE_BSP_COM_FEATURE                 1U
+
+/* COM LOG define */
+#define USE_COM_LOG                         0U
+
+/* POT define */
+#define USE_BSP_POT_FEATURE                 1U
+
+/* COMP define :
+   depends on SB8 and SB10 configuration : refer to UM */
+#define USE_BSP_POT_COMP_FEATURE            0U
+
+/* IO Expander define */
+#define USE_BSP_IO_CLASS                    1U
+
+/* JOY define */
+#define USE_BSP_JOY_FEATURE                 1U
+
+/* USBPD BSP PWR TRACE define */
+#define USE_BSP_PWR_TRACE                 0U
+
+#if (USE_BSP_PWR_TRACE > 0u)
+#define USBPD_PWR_TRACE(_PORT_,...)  UTIL_ADV_TRACE_FSend(__VA_ARGS__)
+#else
+#define USBPD_PWR_TRACE(_PORT_,...)
+#endif /* USE_BSP_PWR_TRACE */
+
+/* IRQ priorities */
+#define BSP_SRAM_IT_PRIORITY                15U
+#define BSP_IOEXPANDER_IT_PRIORITY          14U
+#define BSP_BUTTON_USER_IT_PRIORITY         15U
+#define BSP_AUDIO_OUT_IT_PRIORITY           13U
+#define BSP_AUDIO_IN_IT_PRIORITY            12U
+
+/* Audio codecs defines */
+#define USE_AUDIO_CODEC_WM8994              1U
+
+/* Default Audio IN internal buffer size */
+#define DEFAULT_AUDIO_IN_BUFFER_SIZE        2048U
+
+/* I2C3 Frequency in Hz  */
+#define BUS_I2C3_FREQUENCY                  100000U   /* Frequency of I2C3 = 100 kHz*/
+
+/* SPI2 Baud rate in bps  */
+#define BUS_SPI2_BAUDRATE                   12500000U /* baud rate of SPIn = 12.5 Mbps */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STM32G474E_EVAL_CONF_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 80 - 0
tests/bsp/stm32g4xx_nucleo_conf.h

@@ -0,0 +1,80 @@
+/**
+  ******************************************************************************
+  * @file    stm32g4xx_nucleo_conf_template.h
+  * @author  MCD Application Team
+  * @brief   STM32G4xx_Nucleo board configuration file.
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
+  * All rights reserved.</center></h2>
+  *
+  * This software component is licensed by ST under BSD 3-Clause license,
+  * the "License"; You may not use this file except in compliance with the
+  * License. You may obtain a copy of the License at:
+  *                        opensource.org/licenses/BSD-3-Clause
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef STM32G4XX_NUCLEO_CONF_H
+#define STM32G4XX_NUCLEO_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32g4xx_hal.h"
+
+/** @addtogroup BSP
+  * @{
+  */
+
+/** @addtogroup STM32G4XX_NUCLEO
+  * @{
+  */
+
+/** @defgroup STM32G4XX_NUCLEO_CONFIG Config
+  * @{
+  */
+
+/** @defgroup STM32G4XX_NUCLEO_CONFIG_Exported_Constants Exported Constants
+  * @{
+  */
+/* Uncomment one of the board define below */
+/* #define USE_NUCLEO_32 */
+#define USE_NUCLEO_64
+
+/* COM usage define */
+#define USE_BSP_COM_FEATURE                 0U
+
+/* COM log define */
+#define USE_COM_LOG                         0U
+
+/* IRQ priorities */
+#define BSP_BUTTON_USER_IT_PRIORITY         15U
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STM32G4XX_NUCLEO_CONF_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/