Skip to content

Commit 2d21caa

Browse files
bsatromfpistm
andauthored
feat:add support for SparkFun MicroMod STM32F405 (#1987)
Co-authored-by: Frederic Pillon <[email protected]> Signed-off-by: Brandon Satrom <[email protected]>
1 parent 2de9952 commit 2d21caa

File tree

9 files changed

+912
-0
lines changed

9 files changed

+912
-0
lines changed

Diff for: CI/build/conf/cores_config.json

+1
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@
287287
"MALYANM200_F103CB",
288288
"MALYANM300_F070CB",
289289
"MAPLEMINI_F103CB",
290+
"MICROMOD_F405",
290291
"NUCLEO_F031K6",
291292
"NUCLEO_L031K6",
292293
"NUCLEO_L412KB",

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
320320
| Status | Device(s) | Name | Release | Notes |
321321
| :----: | :-------: | ---- | :-----: | :---- |
322322
| :green_heart: | STM32F405RG | [Adafruit Feather STM32F405 Express](https://www.adafruit.com/product/4382) | *1.8.0* | |
323+
| :yellow_heart: | STM32F405RG | [SparkFun MicroMod STM32](https://www.sparkfun.com/products/21326) | **2.6.0** | |
323324
| :green_heart: | STM32F401CC | [WeAct Black Pill](https://stm32-base.org/boards/STM32F401CCU6-WeAct-Black-Pill-V1.2) | *1.7.0* | [More info](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1) |
324325
| :green_heart: | STM32F401CE | [WeAct Black Pill](https://stm32-base.org/boards/STM32F401CEU6-WeAct-Black-Pill-V3.0) | *2.4.0* | [More info](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1) |
325326
| :green_heart: | STM32F411CE | [WeAct Black Pill](https://stm32-base.org/boards/STM32F411CEU6-WeAct-Black-Pill-V2.0) | *1.9.0* | [More info](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1) |

Diff for: boards.txt

+12
Original file line numberDiff line numberDiff line change
@@ -3698,6 +3698,18 @@ GenF4.menu.pnum.FEATHER_F405.build.variant_h=variant_{build.board}.h
36983698
GenF4.menu.pnum.FEATHER_F405.build.variant=STM32F4xx/F405RGT_F415RGT
36993699
GenF4.menu.pnum.FEATHER_F405.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
37003700

3701+
# SparkFun MicroMod STM32F405 board
3702+
GenF4.menu.pnum.MICROMOD_F405=SparkFun MicroMod STM32F405
3703+
GenF4.menu.pnum.MICROMOD_F405.upload.maximum_size=1048576
3704+
GenF4.menu.pnum.MICROMOD_F405.upload.maximum_data_size=131072
3705+
GenF4.menu.pnum.MICROMOD_F405.build.board=MICROMOD_F405
3706+
GenF4.menu.pnum.MICROMOD_F405.build.product_line=STM32F405xx
3707+
GenF4.menu.pnum.MICROMOD_F405.build.variant_h=variant_{build.board}.h
3708+
GenF4.menu.pnum.MICROMOD_F405.build.variant=STM32F4xx/F405RGT_F415RGT
3709+
GenF4.menu.pnum.MICROMOD_F405.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3710+
GenF4.menu.pnum.MICROMOD_F405.build.vid=0x1B4F
3711+
GenF4.menu.pnum.MICROMOD_F405.build.pid=0x0029
3712+
37013713
# ThunderPack F411xxE
37023714
# https://github.com/jgillick/ThunderPack/tree/STM32F4
37033715
GenF4.menu.pnum.THUNDERPACK_F411=ThunderPack v1.1+

Diff for: cmake/boards_db.cmake

+130
Original file line numberDiff line numberDiff line change
@@ -97836,6 +97836,136 @@ target_link_libraries(MAPLEMINI_F103CB_hid INTERFACE
9783697836
)
9783797837

9783897838

97839+
# MICROMOD_F405
97840+
# -----------------------------------------------------------------------------
97841+
97842+
set(MICROMOD_F405_VARIANT_PATH "${CMAKE_CURRENT_LIST_DIR}/../variants/STM32F4xx/F405RGT_F415RGT")
97843+
set(MICROMOD_F405_MAXSIZE 1048576)
97844+
set(MICROMOD_F405_MAXDATASIZE 131072)
97845+
set(MICROMOD_F405_MCU cortex-m4)
97846+
set(MICROMOD_F405_FPCONF "-")
97847+
add_library(MICROMOD_F405 INTERFACE)
97848+
target_compile_options(MICROMOD_F405 INTERFACE
97849+
"SHELL:-DSTM32F405xx "
97850+
"SHELL:-DCUSTOM_PERIPHERAL_PINS"
97851+
"SHELL:"
97852+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
97853+
-mcpu=${MICROMOD_F405_MCU}
97854+
)
97855+
target_compile_definitions(MICROMOD_F405 INTERFACE
97856+
"STM32F4xx"
97857+
"ARDUINO_MICROMOD_F405"
97858+
"BOARD_NAME=\"MICROMOD_F405\""
97859+
"BOARD_ID=MICROMOD_F405"
97860+
"VARIANT_H=\"variant_MICROMOD_F405.h\""
97861+
)
97862+
target_include_directories(MICROMOD_F405 INTERFACE
97863+
${CMAKE_CURRENT_LIST_DIR}/../system/STM32F4xx
97864+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32F4xx_HAL_Driver/Inc
97865+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32F4xx_HAL_Driver/Src
97866+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32F4xx/Include/
97867+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/
97868+
${MICROMOD_F405_VARIANT_PATH}
97869+
)
97870+
97871+
target_link_options(MICROMOD_F405 INTERFACE
97872+
"LINKER:--default-script=${MICROMOD_F405_VARIANT_PATH}/ldscript.ld"
97873+
"LINKER:--defsym=LD_FLASH_OFFSET=0"
97874+
"LINKER:--defsym=LD_MAX_SIZE=1048576"
97875+
"LINKER:--defsym=LD_MAX_DATA_SIZE=131072"
97876+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
97877+
-mcpu=${MICROMOD_F405_MCU}
97878+
)
97879+
target_link_libraries(MICROMOD_F405 INTERFACE
97880+
arm_cortexM4lf_math
97881+
)
97882+
97883+
add_library(MICROMOD_F405_serial_disabled INTERFACE)
97884+
target_compile_options(MICROMOD_F405_serial_disabled INTERFACE
97885+
"SHELL:"
97886+
)
97887+
add_library(MICROMOD_F405_serial_generic INTERFACE)
97888+
target_compile_options(MICROMOD_F405_serial_generic INTERFACE
97889+
"SHELL:-DHAL_UART_MODULE_ENABLED"
97890+
)
97891+
add_library(MICROMOD_F405_serial_none INTERFACE)
97892+
target_compile_options(MICROMOD_F405_serial_none INTERFACE
97893+
"SHELL:-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE"
97894+
)
97895+
add_library(MICROMOD_F405_usb_CDC INTERFACE)
97896+
target_compile_options(MICROMOD_F405_usb_CDC INTERFACE
97897+
"SHELL:-DUSBCON -DUSBD_VID=0x1B4F -DUSBD_PID=0x0029 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB"
97898+
)
97899+
add_library(MICROMOD_F405_usb_CDCgen INTERFACE)
97900+
target_compile_options(MICROMOD_F405_usb_CDCgen INTERFACE
97901+
"SHELL:-DUSBCON -DUSBD_VID=0x1B4F -DUSBD_PID=0x0029 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC"
97902+
)
97903+
add_library(MICROMOD_F405_usb_HID INTERFACE)
97904+
target_compile_options(MICROMOD_F405_usb_HID INTERFACE
97905+
"SHELL:-DUSBCON -DUSBD_VID=0x1B4F -DUSBD_PID=0x0029 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_HID_COMPOSITE"
97906+
)
97907+
add_library(MICROMOD_F405_usb_none INTERFACE)
97908+
target_compile_options(MICROMOD_F405_usb_none INTERFACE
97909+
"SHELL:"
97910+
)
97911+
add_library(MICROMOD_F405_xusb_FS INTERFACE)
97912+
target_compile_options(MICROMOD_F405_xusb_FS INTERFACE
97913+
"SHELL:"
97914+
)
97915+
add_library(MICROMOD_F405_xusb_HS INTERFACE)
97916+
target_compile_options(MICROMOD_F405_xusb_HS INTERFACE
97917+
"SHELL:-DUSE_USB_HS"
97918+
)
97919+
add_library(MICROMOD_F405_xusb_HSFS INTERFACE)
97920+
target_compile_options(MICROMOD_F405_xusb_HSFS INTERFACE
97921+
"SHELL:-DUSE_USB_HS -DUSE_USB_HS_IN_FS"
97922+
)
97923+
97924+
# MICROMOD_F405_hid
97925+
# -----------------------------------------------------------------------------
97926+
97927+
set(MICROMOD_F405_hid_VARIANT_PATH "${CMAKE_CURRENT_LIST_DIR}/../variants/STM32F4xx/F405RGT_F415RGT")
97928+
set(MICROMOD_F405_hid_MAXSIZE 1048576)
97929+
set(MICROMOD_F405_hid_MAXDATASIZE 131072)
97930+
set(MICROMOD_F405_hid_MCU cortex-m4)
97931+
set(MICROMOD_F405_hid_FPCONF "-")
97932+
add_library(MICROMOD_F405_hid INTERFACE)
97933+
target_compile_options(MICROMOD_F405_hid INTERFACE
97934+
"SHELL:-DSTM32F405xx -DHAL_UART_MODULE_ENABLED -DBL_HID -DVECT_TAB_OFFSET=0x4000"
97935+
"SHELL:-DCUSTOM_PERIPHERAL_PINS"
97936+
"SHELL:"
97937+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
97938+
-mcpu=${MICROMOD_F405_hid_MCU}
97939+
)
97940+
target_compile_definitions(MICROMOD_F405_hid INTERFACE
97941+
"STM32F4xx"
97942+
"ARDUINO_MICROMOD_F405"
97943+
"BOARD_NAME=\"MICROMOD_F405\""
97944+
"BOARD_ID=MICROMOD_F405"
97945+
"VARIANT_H=\"variant_MICROMOD_F405.h\""
97946+
)
97947+
target_include_directories(MICROMOD_F405_hid INTERFACE
97948+
${CMAKE_CURRENT_LIST_DIR}/../system/STM32F4xx
97949+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32F4xx_HAL_Driver/Inc
97950+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32F4xx_HAL_Driver/Src
97951+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32F4xx/Include/
97952+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/
97953+
${MICROMOD_F405_hid_VARIANT_PATH}
97954+
)
97955+
97956+
target_link_options(MICROMOD_F405_hid INTERFACE
97957+
"LINKER:--default-script=${MICROMOD_F405_hid_VARIANT_PATH}/ldscript.ld"
97958+
"LINKER:--defsym=LD_FLASH_OFFSET=0x4000"
97959+
"LINKER:--defsym=LD_MAX_SIZE=1048576"
97960+
"LINKER:--defsym=LD_MAX_DATA_SIZE=131072"
97961+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
97962+
-mcpu=${MICROMOD_F405_hid_MCU}
97963+
)
97964+
target_link_libraries(MICROMOD_F405_hid INTERFACE
97965+
arm_cortexM4lf_math
97966+
)
97967+
97968+
9783997969
# MKR_SHARKY
9784097970
# -----------------------------------------------------------------------------
9784197971

Diff for: tools/platformio/boards_remap.json

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"rak811_tracker_32": "RAK811_TRACKERA",
2222
"robotdyn_blackpill_f303cc": "BLACKPILL_F303CC",
2323
"rumba32_f446ve": "RUMBA32",
24+
"sparkfun_micromod_stm32f405": "MICROMOD_F405",
2425
"sparky_v1": "SPARKY_F303CC",
2526
"steval_mksboxv1": "STEVAL_MKSBOX1V1",
2627
"stm32f4stamp": "GENERIC_F405RGTX",

Diff for: variants/STM32F4xx/F405RGT_F415RGT/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ add_library(variant_bin STATIC EXCLUDE_FROM_ALL
2222
generic_clock.c
2323
PeripheralPins.c
2424
PeripheralPins_FEATHER_F405.c
25+
PeripheralPins_MICROMOD_F405.c
2526
variant_FEATHER_F405.cpp
2627
variant_generic.cpp
28+
variant_MICROMOD_F405.cpp
2729
)
2830
target_link_libraries(variant_bin PUBLIC variant_usage)
2931

0 commit comments

Comments
 (0)