Skip to content

Commit 32a312a

Browse files
authored
Merge pull request #1926 from fpistm/STM32C0
Add STM32 C0 support
2 parents 4b5098c + 5555460 commit 32a312a

File tree

265 files changed

+151946
-104
lines changed

Some content is hidden

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

265 files changed

+151946
-104
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
5555
- [Discovery boards](#discovery-boards)
5656
- [Eval boards](#eval-boards)
5757
- [STM32MP1 series coprocessor boards](#stm32mp1-series-coprocessor-boards)
58+
- [Generic STM32C0 boards](#generic-stm32c0-boards)
5859
- [Generic STM32F0 boards](#generic-stm32f0-boards)
5960
- [Generic STM32F1 boards](#generic-stm32f1-boards)
6061
- [Generic STM32F2 boards](#generic-stm32f2-boards)
@@ -104,6 +105,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
104105

105106
| Status | Device(s) | Name | Release | Notes |
106107
| :----: | :-------: | ---- | :-----: | :---- |
108+
| :yellow_heart: | STM32C031C6 | [Nucleo C031C6](https://www.st.com/en/evaluation-tools/nucleo-c031c6.html) | **2.5.0** | |
107109
| :green_heart: | STM32F030R8 | [Nucleo F030R8](http://www.st.com/en/evaluation-tools/nucleo-f030r8.html) | *0.2.0* | |
108110
| :green_heart: | STM32F070RB | [Nucleo F070RB](http://www.st.com/en/evaluation-tools/nucleo-f070rb.html) | *2.0.0* | |
109111
| :green_heart: | STM32F072RB | [Nucleo F072RB](http://www.st.com/en/evaluation-tools/nucleo-f072rb.html) | *1.9.0* | |
@@ -149,6 +151,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
149151

150152
| Status | Device(s) | Name | Release | Notes |
151153
| :----: | :-------: | ---- | :-----: | :---- |
154+
| :yellow_heart: | STM32C031C6 | [STM32C0316-DK](https://www.st.com/en/evaluation-tools/stm32c0316-dk.html) | **2.5.0** | |
152155
| :green_heart: | STM32F030R8 | [32F0308DISCOVERY](http://www.st.com/en/evaluation-tools/32f0308discovery.html) | *1.3.0* | |
153156
| :green_heart: | STM32F072RB | [32F072BDISCOVERY](https://www.st.com/en/evaluation-tools/32f072bdiscovery.html) | *1.5.0* | |
154157
| :green_heart: | STM32F100RB | [STM32VLDISCOVERY](https://www.st.com/en/evaluation-tools/stm32vldiscovery.html) | 0.2.1 | |
@@ -175,6 +178,12 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
175178
| :green_heart: | STM32MP157A | [STM32MP157A-DK1](https://www.st.com/en/evaluation-tools/stm32mp157a-dk1.html) | *1.8.0* | See [the documentation](https://github.com/stm32duino/Arduino_Core_STM32/tree/main/variants/STM32MP157_DK/README.md) to use this board|
176179
| :green_heart: | STM32MP157C | [STM32MP157C-DK2](https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html) | *1.8.0* | See [the documentation](https://github.com/stm32duino/Arduino_Core_STM32/tree/main/variants/STM32MP157_DK/README.md) to use this board|
177180

181+
### Generic STM32C0 boards
182+
183+
| Status | Device(s) | Name | Release | Notes |
184+
| :----: | :-------: | ---- | :-----: | :---- |
185+
| :yellow_heart: | STM32C031C4<br>STM32C031C6 | Generic Board | **2.5.0** | |
186+
178187
### Generic STM32F0 boards
179188

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

boards.txt

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,19 @@ Nucleo_64.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.
282282
Nucleo_64.upload.maximum_size=0
283283
Nucleo_64.upload.maximum_data_size=0
284284

285+
# NUCLEO_C031C6 board
286+
Nucleo_64.menu.pnum.NUCLEO_C031C6=Nucleo C031C6
287+
Nucleo_64.menu.pnum.NUCLEO_C031C6.node="NOD_C031C6"
288+
Nucleo_64.menu.pnum.NUCLEO_C031C6.upload.maximum_size=32768
289+
Nucleo_64.menu.pnum.NUCLEO_C031C6.upload.maximum_data_size=12288
290+
Nucleo_64.menu.pnum.NUCLEO_C031C6.build.mcu=cortex-m0plus
291+
Nucleo_64.menu.pnum.NUCLEO_C031C6.build.board=NUCLEO_C031C6
292+
Nucleo_64.menu.pnum.NUCLEO_C031C6.build.series=STM32C0xx
293+
Nucleo_64.menu.pnum.NUCLEO_C031C6.build.product_line=STM32C031xx
294+
Nucleo_64.menu.pnum.NUCLEO_C031C6.build.variant=STM32C0xx/C031C(4-6)(T-U)
295+
Nucleo_64.menu.pnum.NUCLEO_C031C6.build.cmsis_lib_gcc=arm_cortexM0l_math
296+
Nucleo_64.menu.pnum.NUCLEO_C031C6.build.extra_flags=-D{build.product_line} {build.xSerial} -D__CORTEX_SC=0
297+
285298
# NUCLEO_F030R8 board
286299
Nucleo_64.menu.pnum.NUCLEO_F030R8=Nucleo F030R8
287300
Nucleo_64.menu.pnum.NUCLEO_F030R8.node="NODE_F030R8,NUCLEO"
@@ -870,6 +883,19 @@ Disco.menu.pnum.B_U585I_IOT02A.build.variant=STM32U5xx/U575A(G-I)IxQ_U585AIIxQ
870883
Disco.menu.pnum.B_U585I_IOT02A.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
871884
Disco.menu.pnum.B_U585I_IOT02A.build.cmsis_lib_gcc=arm_ARMv8MMLlfsp_math
872885

886+
# STM32C0316-DK board
887+
Disco.menu.pnum.STM32C0316_DK=STM32C0316-DK
888+
Disco.menu.pnum.STM32C0316_DK.node="No_mass_storage_for_this_board_Use_STLink_upload_method"
889+
Disco.menu.pnum.STM32C0316_DK.upload.maximum_size=32768
890+
Disco.menu.pnum.STM32C0316_DK.upload.maximum_data_size=12288
891+
Disco.menu.pnum.STM32C0316_DK.build.mcu=cortex-m0plus
892+
Disco.menu.pnum.STM32C0316_DK.build.board=STM32C0316_DK
893+
Disco.menu.pnum.STM32C0316_DK.build.series=STM32C0xx
894+
Disco.menu.pnum.STM32C0316_DK.build.product_line=STM32C031xx
895+
Disco.menu.pnum.STM32C0316_DK.build.variant=STM32C0xx/C031C(4-6)(T-U)
896+
Disco.menu.pnum.STM32C0316_DK.build.cmsis_lib_gcc=arm_cortexM0l_math
897+
Disco.menu.pnum.STM32C0316_DK.build.extra_flags=-D{build.product_line} {build.xSerial} -D__CORTEX_SC=0
898+
873899
# DISCO_F030R8 board
874900
Disco.menu.pnum.DISCO_F030R8=STM32F030R8-DISCVL
875901
Disco.menu.pnum.DISCO_F030R8.node="No_mass_storage_for_this_board_Use_STLink_upload_method"
@@ -1090,6 +1116,60 @@ STM32MP1.menu.upload_method.MassStorage=Generate run_arduino.sh (You need to cop
10901116
STM32MP1.menu.upload_method.MassStorage.upload.protocol=
10911117
STM32MP1.menu.upload_method.MassStorage.upload.tool=remoteproc_gen
10921118

1119+
###############################
1120+
# Generic C0
1121+
GenC0.name=Generic STM32C0 series
1122+
1123+
GenC0.build.core=arduino
1124+
GenC0.build.board=GenC0
1125+
GenC0.build.mcu=cortex-m0plus
1126+
GenC0.build.series=STM32C0xx
1127+
GenC0.build.cmsis_lib_gcc=arm_cortexM0l_math
1128+
GenC0.build.extra_flags=-D{build.product_line} {build.xSerial} -D__CORTEX_SC=0
1129+
1130+
# Generic C031C4Tx
1131+
GenC0.menu.pnum.GENERIC_C031C4TX=Generic C031C4Tx
1132+
GenC0.menu.pnum.GENERIC_C031C4TX.upload.maximum_size=16384
1133+
GenC0.menu.pnum.GENERIC_C031C4TX.upload.maximum_data_size=12288
1134+
GenC0.menu.pnum.GENERIC_C031C4TX.build.board=GENERIC_C031C4TX
1135+
GenC0.menu.pnum.GENERIC_C031C4TX.build.product_line=STM32C031xx
1136+
GenC0.menu.pnum.GENERIC_C031C4TX.build.variant=STM32C0xx/C031C(4-6)(T-U)
1137+
1138+
# Generic C031C6Tx
1139+
GenC0.menu.pnum.GENERIC_C031C6TX=Generic C031C6Tx
1140+
GenC0.menu.pnum.GENERIC_C031C6TX.upload.maximum_size=32768
1141+
GenC0.menu.pnum.GENERIC_C031C6TX.upload.maximum_data_size=12288
1142+
GenC0.menu.pnum.GENERIC_C031C6TX.build.board=GENERIC_C031C6TX
1143+
GenC0.menu.pnum.GENERIC_C031C6TX.build.product_line=STM32C031xx
1144+
GenC0.menu.pnum.GENERIC_C031C6TX.build.variant=STM32C0xx/C031C(4-6)(T-U)
1145+
1146+
# Generic C031C4Ux
1147+
GenC0.menu.pnum.GENERIC_C031C4UX=Generic C031C4Ux
1148+
GenC0.menu.pnum.GENERIC_C031C4UX.upload.maximum_size=16384
1149+
GenC0.menu.pnum.GENERIC_C031C4UX.upload.maximum_data_size=12288
1150+
GenC0.menu.pnum.GENERIC_C031C4UX.build.board=GENERIC_C031C4UX
1151+
GenC0.menu.pnum.GENERIC_C031C4UX.build.product_line=STM32C031xx
1152+
GenC0.menu.pnum.GENERIC_C031C4UX.build.variant=STM32C0xx/C031C(4-6)(T-U)
1153+
1154+
# Generic C031C6Ux
1155+
GenC0.menu.pnum.GENERIC_C031C6UX=Generic C031C6Ux
1156+
GenC0.menu.pnum.GENERIC_C031C6UX.upload.maximum_size=32768
1157+
GenC0.menu.pnum.GENERIC_C031C6UX.upload.maximum_data_size=12288
1158+
GenC0.menu.pnum.GENERIC_C031C6UX.build.board=GENERIC_C031C6UX
1159+
GenC0.menu.pnum.GENERIC_C031C6UX.build.product_line=STM32C031xx
1160+
GenC0.menu.pnum.GENERIC_C031C6UX.build.variant=STM32C0xx/C031C(4-6)(T-U)
1161+
1162+
# Upload menu
1163+
GenC0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
1164+
GenC0.menu.upload_method.swdMethod.upload.protocol=0
1165+
GenC0.menu.upload_method.swdMethod.upload.options=-g
1166+
GenC0.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
1167+
1168+
GenC0.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
1169+
GenC0.menu.upload_method.serialMethod.upload.protocol=1
1170+
GenC0.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
1171+
GenC0.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
1172+
10931173
###############################
10941174
# Generic F0
10951175
GenF0.name=Generic STM32F0 series
@@ -10500,6 +10580,12 @@ STM32MP1.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NO
1050010580
STM32MP1.menu.xserial.disabled=Disabled (no Serial support)
1050110581
STM32MP1.menu.xserial.disabled.build.xSerial=
1050210582

10583+
GenC0.menu.xserial.generic=Enabled (generic 'Serial')
10584+
GenC0.menu.xserial.none=Enabled (no generic 'Serial')
10585+
GenC0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
10586+
GenC0.menu.xserial.disabled=Disabled (no Serial support)
10587+
GenC0.menu.xserial.disabled.build.xSerial=
10588+
1050310589
GenF0.menu.xserial.generic=Enabled (generic 'Serial')
1050410590
GenF0.menu.xserial.none=Enabled (no generic 'Serial')
1050510591
GenF0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
@@ -11088,6 +11174,24 @@ STM32MP1.menu.opt.ogstd.build.flags.optimize=-Og
1108811174
STM32MP1.menu.opt.o0std=No Optimization (-O0)
1108911175
STM32MP1.menu.opt.o0std.build.flags.optimize=-O0
1109011176

11177+
GenC0.menu.opt.osstd=Smallest (-Os default)
11178+
GenC0.menu.opt.oslto=Smallest (-Os) with LTO
11179+
GenC0.menu.opt.oslto.build.flags.optimize=-Os -flto
11180+
GenC0.menu.opt.o1std=Fast (-O1)
11181+
GenC0.menu.opt.o1std.build.flags.optimize=-O1
11182+
GenC0.menu.opt.o1lto=Fast (-O1) with LTO
11183+
GenC0.menu.opt.o1lto.build.flags.optimize=-O1 -flto
11184+
GenC0.menu.opt.o2std=Faster (-O2)
11185+
GenC0.menu.opt.o2std.build.flags.optimize=-O2
11186+
GenC0.menu.opt.o2lto=Faster (-O2) with LTO
11187+
GenC0.menu.opt.o2lto.build.flags.optimize=-O2 -flto
11188+
GenC0.menu.opt.o3std=Fastest (-O3)
11189+
GenC0.menu.opt.o3std.build.flags.optimize=-O3
11190+
GenC0.menu.opt.o3lto=Fastest (-O3) with LTO
11191+
GenC0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
11192+
GenC0.menu.opt.ogstd=Debug (-Og)
11193+
GenC0.menu.opt.ogstd.build.flags.optimize=-Og
11194+
1109111195
GenF0.menu.opt.osstd=Smallest (-Os default)
1109211196
GenF0.menu.opt.oslto=Smallest (-Os) with LTO
1109311197
GenF0.menu.opt.oslto.build.flags.optimize=-Os -flto
@@ -11618,6 +11722,10 @@ STM32MP1.menu.dbg.enable_log.build.flags.debug=
1161811722
STM32MP1.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
1161911723
STM32MP1.menu.dbg.enable_all.build.flags.debug=-g
1162011724

11725+
GenC0.menu.dbg.none=None
11726+
GenC0.menu.dbg.enable=Enabled (-g)
11727+
GenC0.menu.dbg.enable.build.flags.debug=-g
11728+
1162111729
GenF0.menu.dbg.none=None
1162211730
GenF0.menu.dbg.enable_sym=Symbols Enabled (-g)
1162311731
GenF0.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
@@ -11863,6 +11971,16 @@ STM32MP1.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_fl
1186311971
STM32MP1.menu.rtlib.full=Newlib Standard
1186411972
STM32MP1.menu.rtlib.full.build.flags.ldspecs=
1186511973

11974+
GenC0.menu.rtlib.nano=Newlib Nano (default)
11975+
GenC0.menu.rtlib.nanofp=Newlib Nano + Float Printf
11976+
GenC0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
11977+
GenC0.menu.rtlib.nanofs=Newlib Nano + Float Scanf
11978+
GenC0.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
11979+
GenC0.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
11980+
GenC0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
11981+
GenC0.menu.rtlib.full=Newlib Standard
11982+
GenC0.menu.rtlib.full.build.flags.ldspecs=
11983+
1186611984
GenF0.menu.rtlib.nano=Newlib Nano (default)
1186711985
GenF0.menu.rtlib.nanofp=Newlib Nano + Float Printf
1186811986
GenF0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float

cores/arduino/stm32/LL/stm32yyxx_ll_adc.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32F0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_adc.h"
10+
#elif STM32F0xx
911
#include "stm32f0xx_ll_adc.h"
1012
#elif STM32F1xx
1113
#include "stm32f1xx_ll_adc.h"

cores/arduino/stm32/LL/stm32yyxx_ll_bus.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32F0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_bus.h"
10+
#elif STM32F0xx
911
#include "stm32f0xx_ll_bus.h"
1012
#elif STM32F1xx
1113
#include "stm32f1xx_ll_bus.h"

cores/arduino/stm32/LL/stm32yyxx_ll_cortex.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32F0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_cortex.h"
10+
#elif STM32F0xx
911
#include "stm32f0xx_ll_cortex.h"
1012
#elif STM32F1xx
1113
#include "stm32f1xx_ll_cortex.h"

cores/arduino/stm32/LL/stm32yyxx_ll_crc.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32F0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_crc.h"
10+
#elif STM32F0xx
911
#include "stm32f0xx_ll_crc.h"
1012
#elif STM32F1xx
1113
#include "stm32f1xx_ll_crc.h"

cores/arduino/stm32/LL/stm32yyxx_ll_dma.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32F0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_dma.h"
10+
#elif STM32F0xx
911
#include "stm32f0xx_ll_dma.h"
1012
#elif STM32F1xx
1113
#include "stm32f1xx_ll_dma.h"

cores/arduino/stm32/LL/stm32yyxx_ll_dmamux.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32G0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_dmamux.h"
10+
#elif STM32G0xx
911
#include "stm32g0xx_ll_dmamux.h"
1012
#elif STM32G4xx
1113
#include "stm32g4xx_ll_dmamux.h"

cores/arduino/stm32/LL/stm32yyxx_ll_exti.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32F0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_exti.h"
10+
#elif STM32F0xx
911
#include "stm32f0xx_ll_exti.h"
1012
#elif STM32F1xx
1113
#include "stm32f1xx_ll_exti.h"

cores/arduino/stm32/LL/stm32yyxx_ll_gpio.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
#pragma GCC diagnostic ignored "-Wunused-parameter"
66
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
77

8-
#ifdef STM32F0xx
8+
#ifdef STM32C0xx
9+
#include "stm32c0xx_ll_gpio.h"
10+
#elif STM32F0xx
911
#include "stm32f0xx_ll_gpio.h"
1012
#elif STM32F1xx
1113
#include "stm32f1xx_ll_gpio.h"

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