Skip to content

Commit 8d1b68f

Browse files
authored
Merge pull request #2495 from fpistm/STM32CubeU0_addition
feat: add STM32U0xx support
2 parents 1a44f9c + 2d45681 commit 8d1b68f

File tree

384 files changed

+231246
-67
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

384 files changed

+231246
-67
lines changed

.github/workflows/Cmake.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ jobs:
4545
- NUCLEO_L152RE
4646
- NUCLEO_L476RG
4747
- NUCLEO_L552ZE_Q
48+
- NUCLEO_U083RC
4849
- NUCLEO_U575ZI_Q
4950
- P_NUCLEO_WB55RG
5051
- NUCLEO_WBA55CG

CI/update/stm32variant.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2519,7 +2519,6 @@ def manage_repo():
25192519
"STM32H7S",
25202520
"STM32MP13",
25212521
"STM32MP2",
2522-
"STM32U0",
25232522
"STM32WB0",
25242523
]
25252524
periph_c_filename = "PeripheralPins.c"

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
7070
- [Generic STM32L1 boards](#generic-stm32l1-boards)
7171
- [Generic STM32L4 boards](#generic-stm32l4-boards)
7272
- [Generic STM32L5 boards](#generic-stm32l5-boards)
73+
- [Generic STM32U0 boards](#generic-stm32u0-boards)
7374
- [Generic STM32U5 boards](#generic-stm32u5-boards)
7475
- [Generic STM32WB boards](#generic-stm32wb-boards)
7576
- [Generic STM32WBA boards](#generic-stm32wba-boards)
@@ -145,6 +146,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
145146
| :green_heart: | STM32L452RE | [Nucleo L452RE](http://www.st.com/en/evaluation-tools/nucleo-l452re.html) | *1.5.0* | |
146147
| :green_heart: | STM32L452RE-P | [Nucleo L452RE-P](http://www.st.com/en/evaluation-tools/nucleo-l452re-p.html) | *1.8.0* | |
147148
| :green_heart: | STM32L476RG | [Nucleo L476RG](http://www.st.com/en/evaluation-tools/nucleo-l476rg.html) | *0.1.0* | |
149+
| :yellow_heart: | STM32U083RC | [Nucleo U083RC](http://www.st.com/en/evaluation-tools/nucleo-u083rc.html) | **2.9.0** | |
148150
| :green_heart: | STM32WB15CCU | [Nucleo-WB15CC](https://www.st.com/en/evaluation-tools/nucleo-wb15cc.html) | *2.5.0* | |
149151
| :green_heart: | STM32WBA55CGU | Nucleo-WBA55CG | *2.8.0* | |
150152
| :green_heart: | STM32WB55RG | [P-Nucleo-WB55RG](https://www.st.com/en/evaluation-tools/p-nucleo-wb55.html) | *1.6.0* | BLE support with [STM32duinoBLE](https://github.com/stm32duino/STM32duinoBLE) |
@@ -723,6 +725,13 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
723725
| :green_heart: | STM32L552ZC-Q<br>STM32L552ZE-Q | Generic Board | *2.0.0* | |
724726
| :green_heart: | STM32L562ZE-Q | Generic Board | *2.0.0* | |
725727

728+
### Generic STM32U0 boards
729+
730+
| Status | Device(s) | Name | Release | Notes |
731+
| :----: | :-------: | ---- | :-----: | :---- |
732+
| :yellow_heart: | STM32U073R8<br>STSTM32U073RB<br>STM32U073RC | Generic Board | **2.9.0** | |
733+
| :yellow_heart: | STM32U083RC | Generic Board | **2.9.0** | |
734+
726735
### Generic STM32U5 boards
727736

728737
| Status | Device(s) | Name | Release | Notes |

boards.txt

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -768,6 +768,20 @@ Nucleo_64.menu.pnum.NUCLEO_L476RG.build.variant=STM32L4xx/L475R(C-E-G)T_L476R(C-
768768
Nucleo_64.menu.pnum.NUCLEO_L476RG.debug.server.openocd.scripts.2=target/stm32l4x.cfg
769769
Nucleo_64.menu.pnum.NUCLEO_L476RG.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L476.svd
770770

771+
# NUCLEO_U083RC board
772+
Nucleo_64.menu.pnum.NUCLEO_U083RC=Nucleo U083RC
773+
Nucleo_64.menu.pnum.NUCLEO_U083RC.node=NOD_U083RC
774+
Nucleo_64.menu.pnum.NUCLEO_U083RC.upload.maximum_size=262144
775+
Nucleo_64.menu.pnum.NUCLEO_U083RC.upload.maximum_data_size=40960
776+
Nucleo_64.menu.pnum.NUCLEO_U083RC.build.mcu=cortex-m0plus
777+
Nucleo_64.menu.pnum.NUCLEO_U083RC.build.board=NUCLEO_U083RC
778+
Nucleo_64.menu.pnum.NUCLEO_U083RC.build.series=STM32U0xx
779+
Nucleo_64.menu.pnum.NUCLEO_U083RC.build.product_line=STM32U083xx
780+
Nucleo_64.menu.pnum.NUCLEO_U083RC.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
781+
Nucleo_64.menu.pnum.NUCLEO_U083RC.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0
782+
Nucleo_64.menu.pnum.NUCLEO_U083RC.debug.server.openocd.scripts.2=target/stm32u0x.cfg
783+
Nucleo_64.menu.pnum.NUCLEO_U083RC.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U083.svd
784+
771785
# NUCLEO_WB15CC
772786
Nucleo_64.menu.pnum.NUCLEO_WB15CC=Nucleo WB15CC
773787
Nucleo_64.menu.pnum.NUCLEO_WB15CC.node="NOD_WB15CC"
@@ -11651,6 +11665,110 @@ GenL5.menu.upload_method.dfuMethod.upload.protocol=dfu
1165111665
GenL5.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid}
1165211666
GenL5.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
1165311667

11668+
###############################
11669+
# Generic U0
11670+
GenU0.name=Generic STM32U0 series
11671+
11672+
GenU0.build.core=arduino
11673+
GenU0.build.board=GenG0
11674+
GenU0.build.mcu=cortex-m0plus
11675+
GenU0.build.series=STM32U0xx
11676+
GenU0.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0
11677+
GenU0.build.flash_offset=0x0
11678+
GenU0.upload.maximum_size=0
11679+
GenU0.upload.maximum_data_size=0
11680+
GenU0.debug.server.openocd.scripts.2=target/stm32u0x.cfg
11681+
GenU0.vid.0=0x0483
11682+
GenU0.pid.0=0x5740
11683+
11684+
# Generic U073R8Ix
11685+
GenU0.menu.pnum.GENERIC_U073R8IX=Generic U073R8Ix
11686+
GenU0.menu.pnum.GENERIC_U073R8IX.upload.maximum_size=65536
11687+
GenU0.menu.pnum.GENERIC_U073R8IX.upload.maximum_data_size=40960
11688+
GenU0.menu.pnum.GENERIC_U073R8IX.build.board=GENERIC_U073R8IX
11689+
GenU0.menu.pnum.GENERIC_U073R8IX.build.product_line=STM32U073xx
11690+
GenU0.menu.pnum.GENERIC_U073R8IX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11691+
GenU0.menu.pnum.GENERIC_U073R8IX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U073.svd
11692+
11693+
# Generic U073R8Tx
11694+
GenU0.menu.pnum.GENERIC_U073R8TX=Generic U073R8Tx
11695+
GenU0.menu.pnum.GENERIC_U073R8TX.upload.maximum_size=65536
11696+
GenU0.menu.pnum.GENERIC_U073R8TX.upload.maximum_data_size=40960
11697+
GenU0.menu.pnum.GENERIC_U073R8TX.build.board=GENERIC_U073R8TX
11698+
GenU0.menu.pnum.GENERIC_U073R8TX.build.product_line=STM32U073xx
11699+
GenU0.menu.pnum.GENERIC_U073R8TX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11700+
GenU0.menu.pnum.GENERIC_U073R8TX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U073.svd
11701+
11702+
# Generic U073RBIx
11703+
GenU0.menu.pnum.GENERIC_U073RBIX=Generic U073RBIx
11704+
GenU0.menu.pnum.GENERIC_U073RBIX.upload.maximum_size=131072
11705+
GenU0.menu.pnum.GENERIC_U073RBIX.upload.maximum_data_size=40960
11706+
GenU0.menu.pnum.GENERIC_U073RBIX.build.board=GENERIC_U073RBIX
11707+
GenU0.menu.pnum.GENERIC_U073RBIX.build.product_line=STM32U073xx
11708+
GenU0.menu.pnum.GENERIC_U073RBIX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11709+
GenU0.menu.pnum.GENERIC_U073RBIX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U073.svd
11710+
11711+
# Generic U073RBTx
11712+
GenU0.menu.pnum.GENERIC_U073RBTX=Generic U073RBTx
11713+
GenU0.menu.pnum.GENERIC_U073RBTX.upload.maximum_size=131072
11714+
GenU0.menu.pnum.GENERIC_U073RBTX.upload.maximum_data_size=40960
11715+
GenU0.menu.pnum.GENERIC_U073RBTX.build.board=GENERIC_U073RBTX
11716+
GenU0.menu.pnum.GENERIC_U073RBTX.build.product_line=STM32U073xx
11717+
GenU0.menu.pnum.GENERIC_U073RBTX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11718+
GenU0.menu.pnum.GENERIC_U073RBTX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U073.svd
11719+
11720+
# Generic U073RCIx
11721+
GenU0.menu.pnum.GENERIC_U073RCIX=Generic U073RCIx
11722+
GenU0.menu.pnum.GENERIC_U073RCIX.upload.maximum_size=262144
11723+
GenU0.menu.pnum.GENERIC_U073RCIX.upload.maximum_data_size=40960
11724+
GenU0.menu.pnum.GENERIC_U073RCIX.build.board=GENERIC_U073RCIX
11725+
GenU0.menu.pnum.GENERIC_U073RCIX.build.product_line=STM32U073xx
11726+
GenU0.menu.pnum.GENERIC_U073RCIX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11727+
GenU0.menu.pnum.GENERIC_U073RCIX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U073.svd
11728+
11729+
# Generic U073RCTx
11730+
GenU0.menu.pnum.GENERIC_U073RCTX=Generic U073RCTx
11731+
GenU0.menu.pnum.GENERIC_U073RCTX.upload.maximum_size=262144
11732+
GenU0.menu.pnum.GENERIC_U073RCTX.upload.maximum_data_size=40960
11733+
GenU0.menu.pnum.GENERIC_U073RCTX.build.board=GENERIC_U073RCTX
11734+
GenU0.menu.pnum.GENERIC_U073RCTX.build.product_line=STM32U073xx
11735+
GenU0.menu.pnum.GENERIC_U073RCTX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11736+
GenU0.menu.pnum.GENERIC_U073RCTX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U073.svd
11737+
11738+
# Generic U083RCIx
11739+
GenU0.menu.pnum.GENERIC_U083RCIX=Generic U083RCIx
11740+
GenU0.menu.pnum.GENERIC_U083RCIX.upload.maximum_size=262144
11741+
GenU0.menu.pnum.GENERIC_U083RCIX.upload.maximum_data_size=40960
11742+
GenU0.menu.pnum.GENERIC_U083RCIX.build.board=GENERIC_U083RCIX
11743+
GenU0.menu.pnum.GENERIC_U083RCIX.build.product_line=STM32U083xx
11744+
GenU0.menu.pnum.GENERIC_U083RCIX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11745+
GenU0.menu.pnum.GENERIC_U083RCIX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U083.svd
11746+
11747+
# Generic U083RCTx
11748+
GenU0.menu.pnum.GENERIC_U083RCTX=Generic U083RCTx
11749+
GenU0.menu.pnum.GENERIC_U083RCTX.upload.maximum_size=262144
11750+
GenU0.menu.pnum.GENERIC_U083RCTX.upload.maximum_data_size=40960
11751+
GenU0.menu.pnum.GENERIC_U083RCTX.build.board=GENERIC_U083RCTX
11752+
GenU0.menu.pnum.GENERIC_U083RCTX.build.product_line=STM32U083xx
11753+
GenU0.menu.pnum.GENERIC_U083RCTX.build.variant=STM32U0xx/U073R(8-B-C)(I-T)_U083RC(I-T)
11754+
GenU0.menu.pnum.GENERIC_U083RCTX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32U0xx/STM32U083.svd
11755+
11756+
# Upload menu
11757+
GenU0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
11758+
GenU0.menu.upload_method.swdMethod.upload.protocol=swd
11759+
GenU0.menu.upload_method.swdMethod.upload.options=
11760+
GenU0.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
11761+
11762+
GenU0.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
11763+
GenU0.menu.upload_method.serialMethod.upload.protocol=serial
11764+
GenU0.menu.upload_method.serialMethod.upload.options=-c {serial.port.file}
11765+
GenU0.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
11766+
11767+
GenU0.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
11768+
GenU0.menu.upload_method.dfuMethod.upload.protocol=dfu
11769+
GenU0.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid}
11770+
GenU0.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
11771+
1165411772
################################################################################
1165511773
# Generic U5
1165611774
GenU5.name=Generic STM32U5 series
@@ -13170,6 +13288,12 @@ GenL5.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
1317013288
GenL5.menu.xserial.disabled=Disabled (no Serial support)
1317113289
GenL5.menu.xserial.disabled.build.xSerial=
1317213290

13291+
GenU0.menu.xserial.generic=Enabled (generic 'Serial')
13292+
GenU0.menu.xserial.none=Enabled (no generic 'Serial')
13293+
GenU0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
13294+
GenU0.menu.xserial.disabled=Disabled (no Serial support)
13295+
GenU0.menu.xserial.disabled.build.xSerial=
13296+
1317313297
GenU5.menu.xserial.generic=Enabled (generic 'Serial')
1317413298
GenU5.menu.xserial.none=Enabled (no generic 'Serial')
1317513299
GenU5.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
@@ -13488,6 +13612,14 @@ GenL5.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
1348813612
GenL5.menu.xusb.HSFS=High Speed in Full Speed mode
1348913613
GenL5.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS
1349013614

13615+
GenU0.menu.usb.none=None
13616+
GenU0.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
13617+
GenU0.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
13618+
GenU0.menu.usb.CDC=CDC (no generic 'Serial')
13619+
GenU0.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
13620+
GenU0.menu.usb.HID=HID (keyboard and mouse)
13621+
GenU0.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
13622+
1349113623
GenU5.menu.usb.none=None
1349213624
GenU5.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
1349313625
GenU5.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
@@ -14029,6 +14161,27 @@ GenL5.menu.opt.ogstd.build.flags.optimize=-Og
1402914161
GenL5.menu.opt.o0std=No Optimization (-O0)
1403014162
GenL5.menu.opt.o0std.build.flags.optimize=-O0
1403114163

14164+
GenU0.menu.opt.osstd=Smallest (-Os default)
14165+
GenU0.menu.opt.osstd.build.flags.optimize=-Os
14166+
GenU0.menu.opt.oslto=Smallest (-Os) with LTO
14167+
GenU0.menu.opt.oslto.build.flags.optimize=-Os -flto
14168+
GenU0.menu.opt.o1std=Fast (-O1)
14169+
GenU0.menu.opt.o1std.build.flags.optimize=-O1
14170+
GenU0.menu.opt.o1lto=Fast (-O1) with LTO
14171+
GenU0.menu.opt.o1lto.build.flags.optimize=-O1 -flto
14172+
GenU0.menu.opt.o2std=Faster (-O2)
14173+
GenU0.menu.opt.o2std.build.flags.optimize=-O2
14174+
GenU0.menu.opt.o2lto=Faster (-O2) with LTO
14175+
GenU0.menu.opt.o2lto.build.flags.optimize=-O2 -flto
14176+
GenU0.menu.opt.o3std=Fastest (-O3)
14177+
GenU0.menu.opt.o3std.build.flags.optimize=-O3
14178+
GenU0.menu.opt.o3lto=Fastest (-O3) with LTO
14179+
GenU0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
14180+
GenU0.menu.opt.ogstd=Debug (-Og)
14181+
GenU0.menu.opt.ogstd.build.flags.optimize=-Og
14182+
GenU0.menu.opt.o0std=No Optimization (-O0)
14183+
GenU0.menu.opt.o0std.build.flags.optimize=-O0
14184+
1403214185
GenU5.menu.opt.osstd=Smallest (-Os default)
1403314186
GenU5.menu.opt.osstd.build.flags.optimize=-Os
1403414187
GenU5.menu.opt.oslto=Smallest (-Os) with LTO
@@ -14495,6 +14648,14 @@ GenL5.menu.dbg.enable_log.build.flags.debug=
1449514648
GenL5.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
1449614649
GenL5.menu.dbg.enable_all.build.flags.debug=-g
1449714650

14651+
GenU0.menu.dbg.none=None
14652+
GenU0.menu.dbg.enable_sym=Symbols Enabled (-g)
14653+
GenU0.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
14654+
GenU0.menu.dbg.enable_log=Core logs Enabled
14655+
GenU0.menu.dbg.enable_log.build.flags.debug=
14656+
GenU0.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
14657+
GenU0.menu.dbg.enable_all.build.flags.debug=-g
14658+
1449814659
GenU5.menu.dbg.none=None
1449914660
GenU5.menu.dbg.enable_sym=Symbols Enabled (-g)
1450014661
GenU5.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
@@ -14826,6 +14987,16 @@ GenL5.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float
1482614987
GenL5.menu.rtlib.full=Newlib Standard
1482714988
GenL5.menu.rtlib.full.build.flags.ldspecs=
1482814989

14990+
GenU0.menu.rtlib.nano=Newlib Nano (default)
14991+
GenU0.menu.rtlib.nanofp=Newlib Nano + Float Printf
14992+
GenU0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
14993+
GenU0.menu.rtlib.nanofs=Newlib Nano + Float Scanf
14994+
GenU0.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
14995+
GenU0.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
14996+
GenU0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
14997+
GenU0.menu.rtlib.full=Newlib Standard
14998+
GenU0.menu.rtlib.full.build.flags.ldspecs=
14999+
1482915000
GenU5.menu.rtlib.nano=Newlib Nano (default)
1483015001
GenU5.menu.rtlib.nanofp=Newlib Nano + Float Printf
1483115002
GenU5.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy