Skip to content

Commit 4456809

Browse files
committed
variant(wl3): add generic STM32WL33Cx
Signed-off-by: Frederic Pillon <[email protected]>
1 parent 5ae7330 commit 4456809

File tree

4 files changed

+354
-2
lines changed

4 files changed

+354
-2
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
7878
- [Generic STM32WB boards](#generic-stm32wb-boards)
7979
- [Generic STM32WB0 boards](#generic-stm32wb0-boards)
8080
- [Generic STM32WBA boards](#generic-stm32wba-boards)
81+
- [Generic STM32WL3 boards](#generic-stm32wl3-boards)
8182
- [Generic STM32WL boards](#generic-stm32wl-boards)
8283
- [3D printer boards](#3d-printer-boards)
8384
- [Blues boards](#blues-boards)
@@ -820,6 +821,13 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
820821
| :----: | :-------: | ---- | :-----: | :---- |
821822
| :green_heart: | STM32WBA55CEU<br>STM32WBA55CGU | Generic Board | *2.8.0* | |
822823

824+
### Generic STM32WL3 boards
825+
826+
| Status | Device(s) | Name | Release | Notes |
827+
| :----: | :-------: | ---- | :-----: | :---- |
828+
| :yellow_heart: | STM32WL3C8V<br>STM32WL3CBV<br>STM32WL3CCV | Generic Board | **2.12.0** | |
829+
| :yellow_heart: | STM32WL3C8VX<br>STM32WL3CBVX<br>STM32WL3CCVX | Generic Board | **2.12.0** | |
830+
823831
### Generic STM32WL boards
824832

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

boards.txt

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13390,6 +13390,93 @@ GenWBA.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
1339013390
GenWBA.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
1339113391
GenWBA.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
1339213392

13393+
################################################################################
13394+
# Generic WL3
13395+
GenWL3.name=Generic STM32WL3 series
13396+
13397+
GenWL3.build.core=arduino
13398+
GenWL3.build.board=GenWL3
13399+
GenWL3.build.st_extra_flags=-D{build.product_line} {build.xSerial} -D__CORTEX_SC=0
13400+
GenWL3.build.mcu=cortex-m0plus
13401+
GenWL3.build.series=STM32WL3x
13402+
GenWL3.build.flash_offset=0x0
13403+
GenWL3.upload.maximum_size=0
13404+
GenWL3.upload.maximum_data_size=0
13405+
GenWL3.openocd.target=stm32wl3x
13406+
GenWL3.upload.address=0x10040000
13407+
GenWL3.upload.mode=hwRstPulse
13408+
GenWL3.upload.start=0x10000000
13409+
13410+
# Generic WL33C8Vx
13411+
GenWL3.menu.pnum.GENERIC_WL33C8VX=Generic WL33C8Vx
13412+
GenWL3.menu.pnum.GENERIC_WL33C8VX.upload.maximum_size=65536
13413+
GenWL3.menu.pnum.GENERIC_WL33C8VX.upload.maximum_data_size=16384
13414+
GenWL3.menu.pnum.GENERIC_WL33C8VX.build.board=GENERIC_WL33C8VX
13415+
GenWL3.menu.pnum.GENERIC_WL33C8VX.build.product_line=STM32WL3xx
13416+
GenWL3.menu.pnum.GENERIC_WL33C8VX.build.variant=STM32WL3x/WL33C(8-B-C)Vx(X)
13417+
GenWL3.menu.pnum.GENERIC_WL33C8VX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WL3x/STM32WL33.svd
13418+
13419+
# Generic WL33C8VxX
13420+
GenWL3.menu.pnum.GENERIC_WL33C8VXX=Generic WL33C8VxX
13421+
GenWL3.menu.pnum.GENERIC_WL33C8VXX.upload.maximum_size=65536
13422+
GenWL3.menu.pnum.GENERIC_WL33C8VXX.upload.maximum_data_size=16384
13423+
GenWL3.menu.pnum.GENERIC_WL33C8VXX.build.board=GENERIC_WL33C8VXX
13424+
GenWL3.menu.pnum.GENERIC_WL33C8VXX.build.product_line=STM32WL3xx
13425+
GenWL3.menu.pnum.GENERIC_WL33C8VXX.build.variant=STM32WL3x/WL33C(8-B-C)Vx(X)
13426+
GenWL3.menu.pnum.GENERIC_WL33C8VXX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WL3x/STM32WL33.svd
13427+
13428+
# Generic WL33CBVx
13429+
GenWL3.menu.pnum.GENERIC_WL33CBVX=Generic WL33CBVx
13430+
GenWL3.menu.pnum.GENERIC_WL33CBVX.upload.maximum_size=131072
13431+
GenWL3.menu.pnum.GENERIC_WL33CBVX.upload.maximum_data_size=32768
13432+
GenWL3.menu.pnum.GENERIC_WL33CBVX.build.board=GENERIC_WL33CBVX
13433+
GenWL3.menu.pnum.GENERIC_WL33CBVX.build.product_line=STM32WL3xx
13434+
GenWL3.menu.pnum.GENERIC_WL33CBVX.build.variant=STM32WL3x/WL33C(8-B-C)Vx(X)
13435+
GenWL3.menu.pnum.GENERIC_WL33CBVX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WL3x/STM32WL33.svd
13436+
13437+
# Generic WL33CBVxX
13438+
GenWL3.menu.pnum.GENERIC_WL33CBVXX=Generic WL33CBVxX
13439+
GenWL3.menu.pnum.GENERIC_WL33CBVXX.upload.maximum_size=131072
13440+
GenWL3.menu.pnum.GENERIC_WL33CBVXX.upload.maximum_data_size=32768
13441+
GenWL3.menu.pnum.GENERIC_WL33CBVXX.build.board=GENERIC_WL33CBVXX
13442+
GenWL3.menu.pnum.GENERIC_WL33CBVXX.build.product_line=STM32WL3xx
13443+
GenWL3.menu.pnum.GENERIC_WL33CBVXX.build.variant=STM32WL3x/WL33C(8-B-C)Vx(X)
13444+
GenWL3.menu.pnum.GENERIC_WL33CBVXX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WL3x/STM32WL33.svd
13445+
13446+
# Generic WL33CCVx
13447+
GenWL3.menu.pnum.GENERIC_WL33CCVX=Generic WL33CCVx
13448+
GenWL3.menu.pnum.GENERIC_WL33CCVX.upload.maximum_size=262144
13449+
GenWL3.menu.pnum.GENERIC_WL33CCVX.upload.maximum_data_size=32768
13450+
GenWL3.menu.pnum.GENERIC_WL33CCVX.build.board=GENERIC_WL33CCVX
13451+
GenWL3.menu.pnum.GENERIC_WL33CCVX.build.product_line=STM32WL3xx
13452+
GenWL3.menu.pnum.GENERIC_WL33CCVX.build.variant=STM32WL3x/WL33C(8-B-C)Vx(X)
13453+
GenWL3.menu.pnum.GENERIC_WL33CCVX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WL3x/STM32WL33.svd
13454+
13455+
# Generic WL33CCVxX
13456+
GenWL3.menu.pnum.GENERIC_WL33CCVXX=Generic WL33CCVxX
13457+
GenWL3.menu.pnum.GENERIC_WL33CCVXX.upload.maximum_size=262144
13458+
GenWL3.menu.pnum.GENERIC_WL33CCVXX.upload.maximum_data_size=32768
13459+
GenWL3.menu.pnum.GENERIC_WL33CCVXX.build.board=GENERIC_WL33CCVXX
13460+
GenWL3.menu.pnum.GENERIC_WL33CCVXX.build.product_line=STM32WL3xx
13461+
GenWL3.menu.pnum.GENERIC_WL33CCVXX.build.variant=STM32WL3x/WL33C(8-B-C)Vx(X)
13462+
GenWL3.menu.pnum.GENERIC_WL33CCVXX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WL3x/STM32WL33.svd
13463+
13464+
# Upload menu
13465+
GenWL3.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
13466+
GenWL3.menu.upload_method.swdMethod.upload.protocol=swd
13467+
GenWL3.menu.upload_method.swdMethod.upload.options=-a {upload.address} -m {upload.mode} -s {upload.start}
13468+
GenWL3.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
13469+
13470+
GenWL3.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
13471+
GenWL3.menu.upload_method.jlinkMethod.upload.protocol=jlink
13472+
GenWL3.menu.upload_method.jlinkMethod.upload.options=
13473+
GenWL3.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
13474+
13475+
GenWL3.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
13476+
GenWL3.menu.upload_method.serialMethod.upload.protocol=serial
13477+
GenWL3.menu.upload_method.serialMethod.upload.options=-c {serial.port.file}
13478+
GenWL3.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
13479+
1339313480
################################################################################
1339413481
# Generic WL
1339513482
GenWL.name=Generic STM32WL series
@@ -14911,6 +14998,12 @@ GenWBA.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
1491114998
GenWBA.menu.xserial.disabled=Disabled (no Serial support)
1491214999
GenWBA.menu.xserial.disabled.build.xSerial=
1491315000

15001+
GenWL3.menu.xserial.generic=Enabled (generic 'Serial')
15002+
GenWL3.menu.xserial.none=Enabled (no generic 'Serial')
15003+
GenWL3.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
15004+
GenWL3.menu.xserial.disabled=Disabled (no Serial support)
15005+
GenWL3.menu.xserial.disabled.build.xSerial=
15006+
1491415007
GenWL.menu.xserial.generic=Enabled (generic 'Serial')
1491515008
GenWL.menu.xserial.none=Enabled (no generic 'Serial')
1491615009
GenWL.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
@@ -15905,6 +15998,26 @@ GenWBA.menu.opt.ogstd.build.flags.optimize=-Og
1590515998
GenWBA.menu.opt.o0std=No Optimization (-O0)
1590615999
GenWBA.menu.opt.o0std.build.flags.optimize=-O0
1590716000

16001+
GenWL3.menu.opt.osstd=Smallest (-Os default)
16002+
GenWL3.menu.opt.oslto=Smallest (-Os) with LTO
16003+
GenWL3.menu.opt.oslto.build.flags.optimize=-Os -flto
16004+
GenWL3.menu.opt.o1std=Fast (-O1)
16005+
GenWL3.menu.opt.o1std.build.flags.optimize=-O1
16006+
GenWL3.menu.opt.o1lto=Fast (-O1) with LTO
16007+
GenWL3.menu.opt.o1lto.build.flags.optimize=-O1 -flto
16008+
GenWL3.menu.opt.o2std=Faster (-O2)
16009+
GenWL3.menu.opt.o2std.build.flags.optimize=-O2
16010+
GenWL3.menu.opt.o2lto=Faster (-O2) with LTO
16011+
GenWL3.menu.opt.o2lto.build.flags.optimize=-O2 -flto
16012+
GenWL3.menu.opt.o3std=Fastest (-O3)
16013+
GenWL3.menu.opt.o3std.build.flags.optimize=-O3
16014+
GenWL3.menu.opt.o3lto=Fastest (-O3) with LTO
16015+
GenWL3.menu.opt.o3lto.build.flags.optimize=-O3 -flto
16016+
GenWL3.menu.opt.ogstd=Debug (-Og)
16017+
GenWL3.menu.opt.ogstd.build.flags.optimize=-Og
16018+
GenWL3.menu.opt.o0std=No Optimization (-O0)
16019+
GenWL3.menu.opt.o0std.build.flags.optimize=-O0
16020+
1590816021
GenWL.menu.opt.osstd=Smallest (-Os default)
1590916022
GenWL.menu.opt.oslto=Smallest (-Os) with LTO
1591016023
GenWL.menu.opt.oslto.build.flags.optimize=-Os -flto
@@ -16378,6 +16491,14 @@ GenWBA.menu.dbg.enable_log.build.flags.debug=
1637816491
GenWBA.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
1637916492
GenWBA.menu.dbg.enable_all.build.flags.debug=-g
1638016493

16494+
GenWL3.menu.dbg.none=None
16495+
GenWL3.menu.dbg.enable_sym=Symbols Enabled (-g)
16496+
GenWL3.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
16497+
GenWL3.menu.dbg.enable_log=Core logs Enabled
16498+
GenWL3.menu.dbg.enable_log.build.flags.debug=
16499+
GenWL3.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
16500+
GenWL3.menu.dbg.enable_all.build.flags.debug=-g
16501+
1638116502
GenWL.menu.dbg.none=None
1638216503
GenWL.menu.dbg.enable_sym=Symbols Enabled (-g)
1638316504
GenWL.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
@@ -16753,6 +16874,16 @@ GenWBA.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_floa
1675316874
GenWBA.menu.rtlib.full=Newlib Standard
1675416875
GenWBA.menu.rtlib.full.build.flags.ldspecs=
1675516876

16877+
GenWL3.menu.rtlib.nano=Newlib Nano (default)
16878+
GenWL3.menu.rtlib.nanofp=Newlib Nano + Float Printf
16879+
GenWL3.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
16880+
GenWL3.menu.rtlib.nanofs=Newlib Nano + Float Scanf
16881+
GenWL3.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
16882+
GenWL3.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
16883+
GenWL3.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
16884+
GenWL3.menu.rtlib.full=Newlib Standard
16885+
GenWL3.menu.rtlib.full.build.flags.ldspecs=
16886+
1675616887
GenWL.menu.rtlib.nano=Newlib Nano (default)
1675716888
GenWL.menu.rtlib.nanofp=Newlib Nano + Float Printf
1675816889
GenWL.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float

variants/STM32WL3x/WL33C(8-B-C)Vx(X)/generic_clock.c

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,35 @@
2222
*/
2323
WEAK void SystemClock_Config(void)
2424
{
25-
/* SystemClock_Config can be generated by STM32CubeMX */
26-
#warning "SystemClock_Config() is empty. Default clock at reset is used."
25+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
26+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
27+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {};
28+
29+
/** Initializes the RCC Oscillators according to the specified parameters
30+
* in the RCC_OscInitTypeDef structure.
31+
*/
32+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
33+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
34+
Error_Handler();
35+
}
36+
37+
/** Configure the SYSCLKSource and SYSCLKDivider
38+
*/
39+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
40+
RCC_ClkInitStruct.SYSCLKDivider = RCC_RC64MPLL_DIV1;
41+
42+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_WAIT_STATES_1) != HAL_OK) {
43+
Error_Handler();
44+
}
45+
/** Initializes the peripherals clock
46+
*/
47+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS;
48+
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLK_DIV2;
49+
PeriphClkInitStruct.KRMRateMultiplier = 2;
50+
51+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
52+
Error_Handler();
53+
}
2754
}
2855

2956
#endif /* ARDUINO_GENERIC_* */

0 commit comments

Comments
 (0)