Skip to content

Commit 374591d

Browse files
committed
feat: Blues Heron (STM32U575CIT6)
1 parent c80f4a5 commit 374591d

File tree

9 files changed

+945
-26
lines changed

9 files changed

+945
-26
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: 42 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14254,41 +14254,58 @@ Blues.menu.pnum.CYGNET.pid.0=0x0003
1425414254
Blues.menu.pnum.CYGNET.openocd.target=stm32l4x
1425514255
Blues.menu.pnum.CYGNET.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L433.svd
1425614256

14257+
# Heron board
14258+
Blues.menu.pnum.HERON=Heron
14259+
Blues.menu.pnum.HERON.upload.maximum_size=2097152
14260+
Blues.menu.pnum.HERON.upload.maximum_data_size=786432
14261+
Blues.menu.pnum.HERON.build.mcu=cortex-m33
14262+
Blues.menu.pnum.HERON.build.fpu=-mfpu=fpv5-sp-d16
14263+
Blues.menu.pnum.HERON.build.float-abi=-mfloat-abi=hard
14264+
Blues.menu.pnum.HERON.build.board=HERON
14265+
Blues.menu.pnum.HERON.build.series=STM32U5xx
14266+
Blues.menu.pnum.HERON.build.product_line=STM32U575xx
14267+
Blues.menu.pnum.HERON.build.variant=STM32U5xx/U575C(G-I)(T-U)_U585CI(T-U)
14268+
Blues.menu.pnum.HERON.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
14269+
Blues.menu.pnum.HERON.vid.0=0x30A4
14270+
Blues.menu.pnum.HERON.pid.0=0x0004
14271+
Blues.menu.pnum.HERON.openocd.target=stm32u5x
14272+
Blues.menu.pnum.HERON.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U5xx/STM32U575.svd
14273+
1425714274
# Upload menu
14275+
Blues.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
14276+
Blues.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
14277+
Blues.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
14278+
14279+
Blues.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
14280+
Blues.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
14281+
Blues.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
14282+
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
14283+
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg
14284+
1425814285
Blues.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
1425914286
Blues.menu.upload_method.swdMethod.upload.protocol=swd
1426014287
Blues.menu.upload_method.swdMethod.upload.options=-a {upload.address} -m {upload.mode} -s {upload.start}
1426114288
Blues.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
1426214289

14263-
Blues.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
14264-
Blues.menu.upload_method.jlinkMethod.upload.protocol=jlink
14265-
Blues.menu.upload_method.jlinkMethod.upload.options=-a {upload.address} -s {upload.start}
14266-
Blues.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
14290+
Blues.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
14291+
Blues.menu.upload_method.dfuMethod.upload.protocol=dfu
14292+
Blues.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid} -a {upload.address} -s {upload.start}
14293+
Blues.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
1426714294

1426814295
Blues.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
1426914296
Blues.menu.upload_method.serialMethod.upload.protocol=serial
1427014297
Blues.menu.upload_method.serialMethod.upload.options=-c {serial.port.file} -a {upload.address} -s {upload.start} --parity {upload.parity}
1427114298
Blues.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
1427214299

14273-
Blues.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
14274-
Blues.menu.upload_method.dfuMethod.upload.protocol=dfu
14275-
Blues.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid} -a {upload.address} -s {upload.start}
14276-
Blues.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
14300+
Blues.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
14301+
Blues.menu.upload_method.jlinkMethod.upload.protocol=jlink
14302+
Blues.menu.upload_method.jlinkMethod.upload.options=-a {upload.address} -s {upload.start}
14303+
Blues.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
1427714304

1427814305
Blues.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
1427914306
Blues.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
1428014307
Blues.menu.upload_method.bmpMethod.upload.tool=bmp_upload
1428114308

14282-
Blues.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
14283-
Blues.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
14284-
Blues.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
14285-
14286-
Blues.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
14287-
Blues.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
14288-
Blues.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
14289-
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
14290-
Blues.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg
14291-
1429214309
################################################################################
1429314310
# Elecgator boards
1429414311

@@ -16365,9 +16382,13 @@ GenWL.menu.opt.o0std.build.flags.optimize=-O0
1636516382
3dprinter.menu.opt.o0std=No Optimization (-O0)
1636616383
3dprinter.menu.opt.o0std.build.flags.optimize=-O0
1636716384

16385+
Blues.menu.opt.ogstd=Debug (-Og)
16386+
Blues.menu.opt.ogstd.build.flags.optimize=-Og
1636816387
Blues.menu.opt.osstd=Smallest (-Os default)
1636916388
Blues.menu.opt.oslto=Smallest (-Os) with LTO
1637016389
Blues.menu.opt.oslto.build.flags.optimize=-Os -flto
16390+
Blues.menu.opt.o0std=No Optimization (-O0)
16391+
Blues.menu.opt.o0std.build.flags.optimize=-O0
1637116392
Blues.menu.opt.o1std=Fast (-O1)
1637216393
Blues.menu.opt.o1std.build.flags.optimize=-O1
1637316394
Blues.menu.opt.o1lto=Fast (-O1) with LTO
@@ -16380,10 +16401,6 @@ Blues.menu.opt.o3std=Fastest (-O3)
1638016401
Blues.menu.opt.o3std.build.flags.optimize=-O3
1638116402
Blues.menu.opt.o3lto=Fastest (-O3) with LTO
1638216403
Blues.menu.opt.o3lto.build.flags.optimize=-O3 -flto
16383-
Blues.menu.opt.ogstd=Debug (-Og)
16384-
Blues.menu.opt.ogstd.build.flags.optimize=-Og
16385-
Blues.menu.opt.o0std=No Optimization (-O0)
16386-
Blues.menu.opt.o0std.build.flags.optimize=-O0
1638716404

1638816405
Elecgator.menu.opt.osstd=Smallest (-Os default)
1638916406
Elecgator.menu.opt.oslto=Smallest (-Os) with LTO
@@ -16822,13 +16839,13 @@ GenWL.menu.dbg.enable_all.build.flags.debug=-g
1682216839
3dprinter.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
1682316840
3dprinter.menu.dbg.enable_all.build.flags.debug=-g
1682416841

16825-
Blues.menu.dbg.none=None
16842+
Blues.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
16843+
Blues.menu.dbg.enable_all.build.flags.debug=-g
1682616844
Blues.menu.dbg.enable_sym=Symbols Enabled (-g)
1682716845
Blues.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
1682816846
Blues.menu.dbg.enable_log=Core logs Enabled
1682916847
Blues.menu.dbg.enable_log.build.flags.debug=
16830-
Blues.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
16831-
Blues.menu.dbg.enable_all.build.flags.debug=-g
16848+
Blues.menu.dbg.none=None
1683216849

1683316850
Elecgator.menu.dbg.none=None
1683416851
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/STM32L4xx/L433C(B-C)(T-U)_L443CC(T-U)/variant_CYGNET.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ WEAK void SystemClock_Config(void)
143143
*/
144144
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
145145
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
146-
// RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
147146
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;
148147
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
149148
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;

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)