Skip to content

Commit 3762fbf

Browse files
zfieldsfpistm
authored andcommitted
feat: Blues Heron (STM32U575OIY6QTR)
1 parent b8ca814 commit 3762fbf

9 files changed

Lines changed: 1554 additions & 25 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
878878
| :----: | :-------: | ---- | :-----: | :---- |
879879
| :green_heart: | STM32L4R5ZIYx | [Swan R5](https://blues.com/products/swan) | *2.1.0* | |
880880
| :green_heart: | STM32L433CC | [Cygnet](https://blues.com/products) | *2.8.0* | |
881+
| :yellow_heart: | STM32U575CITx | [Heron](https://blues.com/products) | **2.13.0** | |
881882

882883
### [Elecgator](https://www.elecgator.com/) boards
883884

boards.txt

Lines changed: 42 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14290,6 +14290,23 @@ Blues.menu.pnum.CYGNET.pid.0=0x0003
1429014290
Blues.menu.pnum.CYGNET.openocd.target=stm32l4x
1429114291
Blues.menu.pnum.CYGNET.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L433.svd
1429214292

14293+
# Heron board
14294+
Blues.menu.pnum.HERON=Heron
14295+
Blues.menu.pnum.HERON.upload.maximum_size=2097152
14296+
Blues.menu.pnum.HERON.upload.maximum_data_size=786432
14297+
Blues.menu.pnum.HERON.build.mcu=cortex-m33
14298+
Blues.menu.pnum.HERON.build.fpu=-mfpu=fpv5-sp-d16
14299+
Blues.menu.pnum.HERON.build.float-abi=-mfloat-abi=hard
14300+
Blues.menu.pnum.HERON.build.board=HERON
14301+
Blues.menu.pnum.HERON.build.series=STM32U5xx
14302+
Blues.menu.pnum.HERON.build.product_line=STM32U575xx
14303+
Blues.menu.pnum.HERON.build.variant=STM32U5xx/U575O(G-I)YxQ_U585OIYxQ
14304+
Blues.menu.pnum.HERON.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
14305+
Blues.menu.pnum.HERON.vid.0=0x30A4
14306+
Blues.menu.pnum.HERON.pid.0=0x0004
14307+
Blues.menu.pnum.HERON.openocd.target=stm32u5x
14308+
Blues.menu.pnum.HERON.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U5xx/STM32U575.svd
14309+
1429314310
# Swan R5 board
1429414311
Blues.menu.pnum.SWAN_R5=Swan R5
1429514312
Blues.menu.pnum.SWAN_R5.upload.maximum_size=2097152
@@ -14308,40 +14325,40 @@ Blues.menu.pnum.SWAN_R5.openocd.target=stm32l4x
1430814325
Blues.menu.pnum.SWAN_R5.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L4R5.svd
1430914326

1431014327
# Upload menu
14328+
Blues.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
14329+
Blues.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
14330+
Blues.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
14331+
14332+
Blues.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
14333+
Blues.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
14334+
Blues.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
14335+
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
14336+
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg
14337+
1431114338
Blues.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
1431214339
Blues.menu.upload_method.swdMethod.upload.protocol=swd
1431314340
Blues.menu.upload_method.swdMethod.upload.options=-a {upload.address} -m {upload.mode} -s {upload.start}
1431414341
Blues.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
1431514342

14316-
Blues.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
14317-
Blues.menu.upload_method.jlinkMethod.upload.protocol=jlink
14318-
Blues.menu.upload_method.jlinkMethod.upload.options=-a {upload.address} -s {upload.start}
14319-
Blues.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
14343+
Blues.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
14344+
Blues.menu.upload_method.dfuMethod.upload.protocol=dfu
14345+
Blues.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid} -a {upload.address} -s {upload.start}
14346+
Blues.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
1432014347

1432114348
Blues.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
1432214349
Blues.menu.upload_method.serialMethod.upload.protocol=serial
1432314350
Blues.menu.upload_method.serialMethod.upload.options=-c {serial.port.file} -a {upload.address} -s {upload.start} --parity {upload.parity}
1432414351
Blues.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
1432514352

14326-
Blues.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
14327-
Blues.menu.upload_method.dfuMethod.upload.protocol=dfu
14328-
Blues.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid} -a {upload.address} -s {upload.start}
14329-
Blues.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
14353+
Blues.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
14354+
Blues.menu.upload_method.jlinkMethod.upload.protocol=jlink
14355+
Blues.menu.upload_method.jlinkMethod.upload.options=-a {upload.address} -s {upload.start}
14356+
Blues.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
1433014357

1433114358
Blues.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
1433214359
Blues.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
1433314360
Blues.menu.upload_method.bmpMethod.upload.tool=bmp_upload
1433414361

14335-
Blues.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
14336-
Blues.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
14337-
Blues.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
14338-
14339-
Blues.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
14340-
Blues.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
14341-
Blues.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
14342-
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
14343-
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg
14344-
1434514362
################################################################################
1434614363
# Elecgator boards
1434714364

@@ -16418,9 +16435,13 @@ GenWL.menu.opt.o0std.build.flags.optimize=-O0
1641816435
3dprinter.menu.opt.o0std=No Optimization (-O0)
1641916436
3dprinter.menu.opt.o0std.build.flags.optimize=-O0
1642016437

16438+
Blues.menu.opt.ogstd=Debug (-Og)
16439+
Blues.menu.opt.ogstd.build.flags.optimize=-Og
1642116440
Blues.menu.opt.osstd=Smallest (-Os default)
1642216441
Blues.menu.opt.oslto=Smallest (-Os) with LTO
1642316442
Blues.menu.opt.oslto.build.flags.optimize=-Os -flto
16443+
Blues.menu.opt.o0std=No Optimization (-O0)
16444+
Blues.menu.opt.o0std.build.flags.optimize=-O0
1642416445
Blues.menu.opt.o1std=Fast (-O1)
1642516446
Blues.menu.opt.o1std.build.flags.optimize=-O1
1642616447
Blues.menu.opt.o1lto=Fast (-O1) with LTO
@@ -16433,10 +16454,6 @@ Blues.menu.opt.o3std=Fastest (-O3)
1643316454
Blues.menu.opt.o3std.build.flags.optimize=-O3
1643416455
Blues.menu.opt.o3lto=Fastest (-O3) with LTO
1643516456
Blues.menu.opt.o3lto.build.flags.optimize=-O3 -flto
16436-
Blues.menu.opt.ogstd=Debug (-Og)
16437-
Blues.menu.opt.ogstd.build.flags.optimize=-Og
16438-
Blues.menu.opt.o0std=No Optimization (-O0)
16439-
Blues.menu.opt.o0std.build.flags.optimize=-O0
1644016457

1644116458
Elecgator.menu.opt.osstd=Smallest (-Os default)
1644216459
Elecgator.menu.opt.oslto=Smallest (-Os) with LTO
@@ -16875,13 +16892,13 @@ GenWL.menu.dbg.enable_all.build.flags.debug=-g
1687516892
3dprinter.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
1687616893
3dprinter.menu.dbg.enable_all.build.flags.debug=-g
1687716894

16878-
Blues.menu.dbg.none=None
16895+
Blues.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
16896+
Blues.menu.dbg.enable_all.build.flags.debug=-g
1687916897
Blues.menu.dbg.enable_sym=Symbols Enabled (-g)
1688016898
Blues.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
1688116899
Blues.menu.dbg.enable_log=Core logs Enabled
1688216900
Blues.menu.dbg.enable_log.build.flags.debug=
16883-
Blues.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
16884-
Blues.menu.dbg.enable_all.build.flags.debug=-g
16901+
Blues.menu.dbg.none=None
1688516902

1688616903
Elecgator.menu.dbg.none=None
1688716904
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
@@ -101406,6 +101406,91 @@ target_compile_options(GENERIC_WLE5JCIX_serial_none INTERFACE
101406101406
"SHELL:-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE"
101407101407
)
101408101408

101409+
# HERON
101410+
# -----------------------------------------------------------------------------
101411+
101412+
set(HERON_VARIANT_PATH "${CMAKE_CURRENT_LIST_DIR}/../variants/STM32U5xx/U575O(G-I)YxQ_U585OIYxQ")
101413+
set(HERON_MAXSIZE 2097152)
101414+
set(HERON_MAXDATASIZE 786432)
101415+
set(HERON_MCU cortex-m33)
101416+
set(HERON_FPU_CONF "fpv5-sp-d16")
101417+
set(HERON_FPU_ABI "hard")
101418+
set(HERON_FPCONF "${HERON_FPU_CONF}-${HERON_FPU_ABI}")
101419+
set(HERON_PID 0x0004)
101420+
add_library(HERON INTERFACE)
101421+
target_compile_options(HERON INTERFACE
101422+
"SHELL:-DSTM32U575xx"
101423+
"SHELL:-DCUSTOM_PERIPHERAL_PINS"
101424+
"SHELL:"
101425+
"SHELL:-mfpu=${HERON_FPU_CONF} -mfloat-abi=${HERON_FPU_ABI}"
101426+
-mcpu=${HERON_MCU}
101427+
)
101428+
target_compile_definitions(HERON INTERFACE
101429+
"STM32U5xx"
101430+
"ARDUINO_HERON"
101431+
"BOARD_NAME=\"HERON\""
101432+
"BOARD_ID=HERON"
101433+
"VARIANT_H=\"variant_HERON.h\""
101434+
)
101435+
target_include_directories(HERON INTERFACE
101436+
${CMAKE_CURRENT_LIST_DIR}/../system/STM32U5xx
101437+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32U5xx_HAL_Driver/Inc
101438+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32U5xx_HAL_Driver/Src
101439+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32U5xx/Include/
101440+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32U5xx/Source/Templates/gcc/
101441+
${HERON_VARIANT_PATH}
101442+
)
101443+
101444+
target_link_options(HERON INTERFACE
101445+
"LINKER:--default-script=${HERON_VARIANT_PATH}/ldscript.ld"
101446+
"LINKER:--defsym=LD_FLASH_OFFSET=0x0"
101447+
"LINKER:--defsym=LD_MAX_SIZE=${HERON_MAXSIZE}"
101448+
"LINKER:--defsym=LD_MAX_DATA_SIZE=${HERON_MAXDATASIZE}"
101449+
"SHELL:-mfpu=${HERON_FPU_CONF} -mfloat-abi=${HERON_FPU_ABI}"
101450+
-mcpu=${HERON_MCU}
101451+
)
101452+
101453+
add_library(HERON_serial_disabled INTERFACE)
101454+
target_compile_options(HERON_serial_disabled INTERFACE
101455+
"SHELL:"
101456+
)
101457+
add_library(HERON_serial_generic INTERFACE)
101458+
target_compile_options(HERON_serial_generic INTERFACE
101459+
"SHELL:-DHAL_UART_MODULE_ENABLED"
101460+
)
101461+
add_library(HERON_serial_none INTERFACE)
101462+
target_compile_options(HERON_serial_none INTERFACE
101463+
"SHELL:-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE"
101464+
)
101465+
add_library(HERON_usb_CDC INTERFACE)
101466+
target_compile_options(HERON_usb_CDC INTERFACE
101467+
"SHELL:-DUSBCON -DUSBD_VID=0x30A4 -DUSBD_PID=${HERON_PID} -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB"
101468+
)
101469+
add_library(HERON_usb_CDCgen INTERFACE)
101470+
target_compile_options(HERON_usb_CDCgen INTERFACE
101471+
"SHELL:-DUSBCON -DUSBD_VID=0x30A4 -DUSBD_PID=${HERON_PID} -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC"
101472+
)
101473+
add_library(HERON_usb_HID INTERFACE)
101474+
target_compile_options(HERON_usb_HID INTERFACE
101475+
"SHELL:-DUSBCON -DUSBD_VID=0x30A4 -DUSBD_PID=${HERON_PID} -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_HID_COMPOSITE"
101476+
)
101477+
add_library(HERON_usb_none INTERFACE)
101478+
target_compile_options(HERON_usb_none INTERFACE
101479+
"SHELL:"
101480+
)
101481+
add_library(HERON_xusb_FS INTERFACE)
101482+
target_compile_options(HERON_xusb_FS INTERFACE
101483+
"SHELL:"
101484+
)
101485+
add_library(HERON_xusb_HS INTERFACE)
101486+
target_compile_options(HERON_xusb_HS INTERFACE
101487+
"SHELL:-DUSE_USB_HS"
101488+
)
101489+
add_library(HERON_xusb_HSFS INTERFACE)
101490+
target_compile_options(HERON_xusb_HSFS INTERFACE
101491+
"SHELL:-DUSE_USB_HS -DUSE_USB_HS_IN_FS"
101492+
)
101493+
101409101494
# HY_TINYSTM103TB
101410101495
# -----------------------------------------------------------------------------
101411101496

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/U575O(G-I)YxQ_U585OIYxQ/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ target_link_libraries(variant INTERFACE variant_usage)
2121
add_library(variant_bin STATIC EXCLUDE_FROM_ALL
2222
generic_clock.c
2323
PeripheralPins.c
24+
PeripheralPins_HERON.c
2425
variant_generic.cpp
26+
variant_HERON.cpp
2527
)
2628
target_link_libraries(variant_bin PUBLIC variant_usage)
2729

0 commit comments

Comments
 (0)