Skip to content

Commit 17ea058

Browse files
committed
feat: Blues Heron (STM32U575CIT6)
1 parent fc48ab0 commit 17ea058

File tree

8 files changed

+895
-23
lines changed

8 files changed

+895
-23
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
874874
| :----: | :-------: | ---- | :-----: | :---- |
875875
| :green_heart: | STM32L4R5ZIYx | [Swan R5](https://blues.com/products/swan) | *2.1.0* | |
876876
| :green_heart: | STM32L433CC | [Cygnet](https://blues.com/products) | *2.8.0* | |
877+
| :yellow_heart: | STM32U575CITx | [Heron](https://blues.com/products) | *2.12.0* | |
877878

878879
### [Elecgator](https://www.elecgator.com/) boards
879880

boards.txt

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14200,39 +14200,56 @@ Blues.menu.pnum.CYGNET.pid.0=0x0003
1420014200
Blues.menu.pnum.CYGNET.openocd.target=stm32l4x
1420114201
Blues.menu.pnum.CYGNET.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L433.svd
1420214202

14203+
# Heron board
14204+
Blues.menu.pnum.HERON=Heron
14205+
Blues.menu.pnum.HERON.upload.maximum_size=2097152
14206+
Blues.menu.pnum.HERON.upload.maximum_data_size=786432
14207+
Blues.menu.pnum.HERON.build.mcu=cortex-m33
14208+
Blues.menu.pnum.HERON.build.fpu=-mfpu=fpv5-sp-d16
14209+
Blues.menu.pnum.HERON.build.float-abi=-mfloat-abi=hard
14210+
Blues.menu.pnum.HERON.build.board=HERON
14211+
Blues.menu.pnum.HERON.build.series=STM32U5xx
14212+
Blues.menu.pnum.HERON.build.product_line=STM32U575xx
14213+
Blues.menu.pnum.HERON.build.variant=STM32U5xx/U575C(G-I)(T-U)_U585CI(T-U)
14214+
Blues.menu.pnum.HERON.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
14215+
Blues.menu.pnum.HERON.vid.0=0x30A4
14216+
Blues.menu.pnum.HERON.pid.0=0x0004
14217+
Blues.menu.pnum.HERON.openocd.target=stm32u5x
14218+
Blues.menu.pnum.HERON.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U5xx/STM32U575.svd
14219+
1420314220
# Upload menu
14221+
Blues.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
14222+
Blues.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
14223+
Blues.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
14224+
1420414225
Blues.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
1420514226
Blues.menu.upload_method.swdMethod.upload.protocol=swd
1420614227
Blues.menu.upload_method.swdMethod.upload.options=-a {upload.address} -m {upload.mode} -s {upload.start}
1420714228
Blues.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
1420814229

14209-
Blues.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
14210-
Blues.menu.upload_method.jlinkMethod.upload.protocol=jlink
14211-
Blues.menu.upload_method.jlinkMethod.upload.options=-a {upload.address} -s {upload.start}
14212-
Blues.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
14230+
Blues.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
14231+
Blues.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
14232+
Blues.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
14233+
14234+
Blues.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
14235+
Blues.menu.upload_method.dfuMethod.upload.protocol=dfu
14236+
Blues.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid} -a {upload.address} -s {upload.start}
14237+
Blues.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
1421314238

1421414239
Blues.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
1421514240
Blues.menu.upload_method.serialMethod.upload.protocol=serial
1421614241
Blues.menu.upload_method.serialMethod.upload.options=-c {serial.port.file} -a {upload.address} -s {upload.start} --parity {upload.parity}
1421714242
Blues.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
1421814243

14219-
Blues.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
14220-
Blues.menu.upload_method.dfuMethod.upload.protocol=dfu
14221-
Blues.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid} -a {upload.address} -s {upload.start}
14222-
Blues.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
14244+
Blues.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
14245+
Blues.menu.upload_method.jlinkMethod.upload.protocol=jlink
14246+
Blues.menu.upload_method.jlinkMethod.upload.options=-a {upload.address} -s {upload.start}
14247+
Blues.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
1422314248

1422414249
Blues.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
1422514250
Blues.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
1422614251
Blues.menu.upload_method.bmpMethod.upload.tool=bmp_upload
1422714252

14228-
Blues.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
14229-
Blues.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
14230-
Blues.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
14231-
14232-
Blues.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
14233-
Blues.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
14234-
Blues.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
14235-
1423614253
################################################################################
1423714254
# Elecgator boards
1423814255

@@ -16293,9 +16310,13 @@ GenWL.menu.opt.o0std.build.flags.optimize=-O0
1629316310
3dprinter.menu.opt.o0std=No Optimization (-O0)
1629416311
3dprinter.menu.opt.o0std.build.flags.optimize=-O0
1629516312

16313+
Blues.menu.opt.ogstd=Debug (-Og)
16314+
Blues.menu.opt.ogstd.build.flags.optimize=-Og
1629616315
Blues.menu.opt.osstd=Smallest (-Os default)
1629716316
Blues.menu.opt.oslto=Smallest (-Os) with LTO
1629816317
Blues.menu.opt.oslto.build.flags.optimize=-Os -flto
16318+
Blues.menu.opt.o0std=No Optimization (-O0)
16319+
Blues.menu.opt.o0std.build.flags.optimize=-O0
1629916320
Blues.menu.opt.o1std=Fast (-O1)
1630016321
Blues.menu.opt.o1std.build.flags.optimize=-O1
1630116322
Blues.menu.opt.o1lto=Fast (-O1) with LTO
@@ -16308,10 +16329,6 @@ Blues.menu.opt.o3std=Fastest (-O3)
1630816329
Blues.menu.opt.o3std.build.flags.optimize=-O3
1630916330
Blues.menu.opt.o3lto=Fastest (-O3) with LTO
1631016331
Blues.menu.opt.o3lto.build.flags.optimize=-O3 -flto
16311-
Blues.menu.opt.ogstd=Debug (-Og)
16312-
Blues.menu.opt.ogstd.build.flags.optimize=-Og
16313-
Blues.menu.opt.o0std=No Optimization (-O0)
16314-
Blues.menu.opt.o0std.build.flags.optimize=-O0
1631516332

1631616333
Elecgator.menu.opt.osstd=Smallest (-Os default)
1631716334
Elecgator.menu.opt.oslto=Smallest (-Os) with LTO
@@ -16750,13 +16767,13 @@ GenWL.menu.dbg.enable_all.build.flags.debug=-g
1675016767
3dprinter.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
1675116768
3dprinter.menu.dbg.enable_all.build.flags.debug=-g
1675216769

16753-
Blues.menu.dbg.none=None
16770+
Blues.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
16771+
Blues.menu.dbg.enable_all.build.flags.debug=-g
1675416772
Blues.menu.dbg.enable_sym=Symbols Enabled (-g)
1675516773
Blues.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
1675616774
Blues.menu.dbg.enable_log=Core logs Enabled
1675716775
Blues.menu.dbg.enable_log.build.flags.debug=
16758-
Blues.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
16759-
Blues.menu.dbg.enable_all.build.flags.debug=-g
16776+
Blues.menu.dbg.none=None
1676016777

1676116778
Elecgator.menu.dbg.none=None
1676216779
Elecgator.menu.dbg.enable_sym=Symbols Enabled (-g)

cmake/boards_db.cmake

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109054,6 +109054,91 @@ target_compile_options(GENERIC_WLE5JCIX_serial_none INTERFACE
109054109054
"SHELL:-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE"
109055109055
)
109056109056

109057+
# HERON
109058+
# -----------------------------------------------------------------------------
109059+
109060+
set(HERON_VARIANT_PATH "${CMAKE_CURRENT_LIST_DIR}/../variants/STM32U5xx/U575C(G-I)(T-U)_U585CI(T-U)")
109061+
set(HERON_MAXSIZE 2097152)
109062+
set(HERON_MAXDATASIZE 786432)
109063+
set(HERON_MCU cortex-m33)
109064+
set(HERON_FPU_CONF "fpv5-sp-d16")
109065+
set(HERON_FPU_ABI "hard")
109066+
set(HERON_FPCONF "${HERON_FPU_CONF}-${HERON_FPU_ABI}")
109067+
set(HERON_PID 0x0004)
109068+
add_library(HERON INTERFACE)
109069+
target_compile_options(HERON INTERFACE
109070+
"SHELL:-DSTM32U575xx"
109071+
"SHELL:-DCUSTOM_PERIPHERAL_PINS"
109072+
"SHELL:"
109073+
"SHELL:-mfpu=${HERON_FPU_CONF} -mfloat-abi=${HERON_FPU_ABI}"
109074+
-mcpu=${HERON_MCU}
109075+
)
109076+
target_compile_definitions(HERON INTERFACE
109077+
"STM32U5xx"
109078+
"ARDUINO_HERON"
109079+
"BOARD_NAME=\"HERON\""
109080+
"BOARD_ID=HERON"
109081+
"VARIANT_H=\"variant_HERON.h\""
109082+
)
109083+
target_include_directories(HERON INTERFACE
109084+
${CMAKE_CURRENT_LIST_DIR}/../system/STM32U5xx
109085+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32U5xx_HAL_Driver/Inc
109086+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32U5xx_HAL_Driver/Src
109087+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32U5xx/Include/
109088+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32U5xx/Source/Templates/gcc/
109089+
${HERON_VARIANT_PATH}
109090+
)
109091+
109092+
target_link_options(HERON INTERFACE
109093+
"LINKER:--default-script=${HERON_VARIANT_PATH}/ldscript.ld"
109094+
"LINKER:--defsym=LD_FLASH_OFFSET=0x0"
109095+
"LINKER:--defsym=LD_MAX_SIZE=${HERON_MAXSIZE}"
109096+
"LINKER:--defsym=LD_MAX_DATA_SIZE=${HERON_MAXDATASIZE}"
109097+
"SHELL:-mfpu=${HERON_FPU_CONF} -mfloat-abi=${HERON_FPU_ABI}"
109098+
-mcpu=${HERON_MCU}
109099+
)
109100+
109101+
add_library(HERON_serial_disabled INTERFACE)
109102+
target_compile_options(HERON_serial_disabled INTERFACE
109103+
"SHELL:"
109104+
)
109105+
add_library(HERON_serial_generic INTERFACE)
109106+
target_compile_options(HERON_serial_generic INTERFACE
109107+
"SHELL:-DHAL_UART_MODULE_ENABLED"
109108+
)
109109+
add_library(HERON_serial_none INTERFACE)
109110+
target_compile_options(HERON_serial_none INTERFACE
109111+
"SHELL:-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE"
109112+
)
109113+
add_library(HERON_usb_CDC INTERFACE)
109114+
target_compile_options(HERON_usb_CDC INTERFACE
109115+
"SHELL:-DUSBCON -DUSBD_VID=0x30A4 -DUSBD_PID=${HERON_PID} -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB"
109116+
)
109117+
add_library(HERON_usb_CDCgen INTERFACE)
109118+
target_compile_options(HERON_usb_CDCgen INTERFACE
109119+
"SHELL:-DUSBCON -DUSBD_VID=0x30A4 -DUSBD_PID=${HERON_PID} -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC"
109120+
)
109121+
add_library(HERON_usb_HID INTERFACE)
109122+
target_compile_options(HERON_usb_HID INTERFACE
109123+
"SHELL:-DUSBCON -DUSBD_VID=0x30A4 -DUSBD_PID=${HERON_PID} -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_HID_COMPOSITE"
109124+
)
109125+
add_library(HERON_usb_none INTERFACE)
109126+
target_compile_options(HERON_usb_none INTERFACE
109127+
"SHELL:"
109128+
)
109129+
add_library(HERON_xusb_FS INTERFACE)
109130+
target_compile_options(HERON_xusb_FS INTERFACE
109131+
"SHELL:"
109132+
)
109133+
add_library(HERON_xusb_HS INTERFACE)
109134+
target_compile_options(HERON_xusb_HS INTERFACE
109135+
"SHELL:-DUSE_USB_HS"
109136+
)
109137+
add_library(HERON_xusb_HSFS INTERFACE)
109138+
target_compile_options(HERON_xusb_HSFS INTERFACE
109139+
"SHELL:-DUSE_USB_HS -DUSE_USB_HS_IN_FS"
109140+
)
109141+
109057109142
# HY_TINYSTM103TB
109058109143
# -----------------------------------------------------------------------------
109059109144

tools/platformio/boards_remap.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"bw_swan_r5": "SWAN_R5",
3434
"blues_swan_r5": "SWAN_R5",
3535
"blues_cygnet": "CYGNET",
36+
"blues_heron": "HERON",
3637
"disco_b_g431b_esc1": "B_G431B_ESC1",
3738
"disco_b_u585i_iot02a": "B_U585I_IOT02A",
3839
"nucleo_wl55jc": "NUCLEO_WL55JC1"

variants/STM32U5xx/U575C(G-I)(T-U)_U585CI(T-U)/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
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_DEVKIT_IOT_CONTINUUM.c
25+
PeripheralPins_HERON.c
2526
variant_DEVKIT_IOT_CONTINUUM.cpp
2627
variant_generic.cpp
28+
variant_HERON.cpp
2729
)
2830
target_link_libraries(variant_bin PUBLIC variant_usage)
2931

0 commit comments

Comments
 (0)