Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9cde29c

Browse files
committed
variants(wb): add generic WB55V(C-E-G) and WB55VYY
Fixes#2653.Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent3510e4c commit9cde29c

File tree

4 files changed

+315
-2
lines changed

4 files changed

+315
-2
lines changed

‎README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,8 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
769769
|:green_heart:| STM32WB55CC<br>STM32WB55CE<br>STM32WB55CG| Generic Board|*2.0.0*||
770770
|:green_heart:| STM32WB5MMG| Generic Board|*2.1.0*||
771771
|:green_heart:| STM32WB55RC<br>STM32WB55RE<br>STM32WB55RG| Generic Board|*2.0.0*||
772+
|:yellow_heart:| STM32WB55VC<br>STM32WB55VE<br>STM32WB55VG| Generic Board|**2.10.0**||
773+
|:yellow_heart:| STM32WB55VY| Generic Board|**2.10.0**||
772774

773775
###Generic STM32WBA boards
774776

‎boards.txt

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12619,6 +12619,70 @@ GenWB.menu.pnum.GENERIC_WB55RGVX.build.product_line=STM32WB55xx
1261912619
GenWB.menu.pnum.GENERIC_WB55RGVX.build.variant=STM32WBxx/WB55R(C-E-G)V
1262012620
GenWB.menu.pnum.GENERIC_WB55RGVX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
1262112621

12622+
# Generic WB55VCQx
12623+
GenWB.menu.pnum.GENERIC_WB55VCQX=Generic WB55VCQx
12624+
GenWB.menu.pnum.GENERIC_WB55VCQX.upload.maximum_size=131072
12625+
GenWB.menu.pnum.GENERIC_WB55VCQX.upload.maximum_data_size=65536
12626+
GenWB.menu.pnum.GENERIC_WB55VCQX.build.board=GENERIC_WB55VCQX
12627+
GenWB.menu.pnum.GENERIC_WB55VCQX.build.product_line=STM32WB55xx
12628+
GenWB.menu.pnum.GENERIC_WB55VCQX.build.variant=STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY
12629+
GenWB.menu.pnum.GENERIC_WB55VCQX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
12630+
12631+
# Generic WB55VCYx
12632+
GenWB.menu.pnum.GENERIC_WB55VCYX=Generic WB55VCYx
12633+
GenWB.menu.pnum.GENERIC_WB55VCYX.upload.maximum_size=131072
12634+
GenWB.menu.pnum.GENERIC_WB55VCYX.upload.maximum_data_size=65536
12635+
GenWB.menu.pnum.GENERIC_WB55VCYX.build.board=GENERIC_WB55VCYX
12636+
GenWB.menu.pnum.GENERIC_WB55VCYX.build.product_line=STM32WB55xx
12637+
GenWB.menu.pnum.GENERIC_WB55VCYX.build.variant=STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY
12638+
GenWB.menu.pnum.GENERIC_WB55VCYX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
12639+
12640+
# Generic WB55VEQx
12641+
GenWB.menu.pnum.GENERIC_WB55VEQX=Generic WB55VEQx
12642+
GenWB.menu.pnum.GENERIC_WB55VEQX.upload.maximum_size=262144
12643+
GenWB.menu.pnum.GENERIC_WB55VEQX.upload.maximum_data_size=65536
12644+
GenWB.menu.pnum.GENERIC_WB55VEQX.build.board=GENERIC_WB55VEQX
12645+
GenWB.menu.pnum.GENERIC_WB55VEQX.build.product_line=STM32WB55xx
12646+
GenWB.menu.pnum.GENERIC_WB55VEQX.build.variant=STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY
12647+
GenWB.menu.pnum.GENERIC_WB55VEQX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
12648+
12649+
# Generic WB55VEYx
12650+
GenWB.menu.pnum.GENERIC_WB55VEYX=Generic WB55VEYx
12651+
GenWB.menu.pnum.GENERIC_WB55VEYX.upload.maximum_size=262144
12652+
GenWB.menu.pnum.GENERIC_WB55VEYX.upload.maximum_data_size=196608
12653+
GenWB.menu.pnum.GENERIC_WB55VEYX.build.board=GENERIC_WB55VEYX
12654+
GenWB.menu.pnum.GENERIC_WB55VEYX.build.product_line=STM32WB55xx
12655+
GenWB.menu.pnum.GENERIC_WB55VEYX.build.variant=STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY
12656+
GenWB.menu.pnum.GENERIC_WB55VEYX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
12657+
12658+
# Generic WB55VGQx
12659+
GenWB.menu.pnum.GENERIC_WB55VGQX=Generic WB55VGQx
12660+
GenWB.menu.pnum.GENERIC_WB55VGQX.upload.maximum_size=524288
12661+
GenWB.menu.pnum.GENERIC_WB55VGQX.upload.maximum_data_size=65536
12662+
GenWB.menu.pnum.GENERIC_WB55VGQX.build.board=GENERIC_WB55VGQX
12663+
GenWB.menu.pnum.GENERIC_WB55VGQX.build.product_line=STM32WB55xx
12664+
GenWB.menu.pnum.GENERIC_WB55VGQX.build.variant=STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY
12665+
GenWB.menu.pnum.GENERIC_WB55VGQX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
12666+
12667+
# Generic WB55VGYx
12668+
GenWB.menu.pnum.GENERIC_WB55VGYX=Generic WB55VGYx
12669+
GenWB.menu.pnum.GENERIC_WB55VGYX.upload.maximum_size=524288
12670+
GenWB.menu.pnum.GENERIC_WB55VGYX.upload.maximum_data_size=196608
12671+
GenWB.menu.pnum.GENERIC_WB55VGYX.build.board=GENERIC_WB55VGYX
12672+
GenWB.menu.pnum.GENERIC_WB55VGYX.build.product_line=STM32WB55xx
12673+
GenWB.menu.pnum.GENERIC_WB55VGYX.build.variant=STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY
12674+
GenWB.menu.pnum.GENERIC_WB55VGYX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
12675+
12676+
# Generic WB55VYYx
12677+
GenWB.menu.pnum.GENERIC_WB55VYYX=Generic WB55VYYx
12678+
GenWB.menu.pnum.GENERIC_WB55VYYX.upload.maximum_size=327680
12679+
GenWB.menu.pnum.GENERIC_WB55VYYX.upload.maximum_data_size=196608
12680+
GenWB.menu.pnum.GENERIC_WB55VYYX.build.board=GENERIC_WB55VYYX
12681+
GenWB.menu.pnum.GENERIC_WB55VYYX.build.product_line=STM32WB55xx
12682+
GenWB.menu.pnum.GENERIC_WB55VYYX.build.variant=STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY
12683+
GenWB.menu.pnum.GENERIC_WB55VYYX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32WBxx/STM32WB55_CM4.svd
12684+
12685+
1262212686
# Upload menu
1262312687
GenWB.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
1262412688
GenWB.menu.upload_method.swdMethod.upload.protocol=swd

‎variants/STM32WBxx/WB55V(C-E-G)(Q-Y)_WB55VYY/generic_clock.c

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,70 @@
2323
*/
2424
WEAKvoidSystemClock_Config(void)
2525
{
26-
/* SystemClock_Config can be generated by STM32CubeMX */
27-
#warning "SystemClock_Config() is empty. Default clock at reset is used."
26+
RCC_OscInitTypeDefRCC_OscInitStruct= {};
27+
RCC_ClkInitTypeDefRCC_ClkInitStruct= {};
28+
RCC_PeriphCLKInitTypeDefPeriphClkInitStruct= {0};
29+
30+
/** Configure the main internal regulator output voltage
31+
*/
32+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
33+
34+
/** Initializes the RCC Oscillators according to the specified parameters
35+
* in the RCC_OscInitTypeDef structure.
36+
*/
37+
RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSI48 |RCC_OSCILLATORTYPE_HSI
38+
|RCC_OSCILLATORTYPE_MSI;
39+
RCC_OscInitStruct.HSIState=RCC_HSI_ON;
40+
RCC_OscInitStruct.MSIState=RCC_MSI_ON;
41+
RCC_OscInitStruct.HSI48State=RCC_HSI48_ON;
42+
RCC_OscInitStruct.HSICalibrationValue=RCC_HSICALIBRATION_DEFAULT;
43+
RCC_OscInitStruct.MSICalibrationValue=RCC_MSICALIBRATION_DEFAULT;
44+
RCC_OscInitStruct.MSIClockRange=RCC_MSIRANGE_6;
45+
RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;
46+
RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_MSI;
47+
RCC_OscInitStruct.PLL.PLLM=RCC_PLLM_DIV1;
48+
RCC_OscInitStruct.PLL.PLLN=32;
49+
RCC_OscInitStruct.PLL.PLLP=RCC_PLLP_DIV2;
50+
RCC_OscInitStruct.PLL.PLLR=RCC_PLLR_DIV2;
51+
RCC_OscInitStruct.PLL.PLLQ=RCC_PLLQ_DIV2;
52+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK) {
53+
Error_Handler();
54+
}
55+
56+
/** Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers
57+
*/
58+
RCC_ClkInitStruct.ClockType=RCC_CLOCKTYPE_HCLK4 |RCC_CLOCKTYPE_HCLK2
59+
|RCC_CLOCKTYPE_HCLK |RCC_CLOCKTYPE_SYSCLK
60+
|RCC_CLOCKTYPE_PCLK1 |RCC_CLOCKTYPE_PCLK2;
61+
RCC_ClkInitStruct.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;
62+
RCC_ClkInitStruct.AHBCLKDivider=RCC_SYSCLK_DIV1;
63+
RCC_ClkInitStruct.APB1CLKDivider=RCC_HCLK_DIV1;
64+
RCC_ClkInitStruct.APB2CLKDivider=RCC_HCLK_DIV1;
65+
RCC_ClkInitStruct.AHBCLK2Divider=RCC_SYSCLK_DIV2;
66+
RCC_ClkInitStruct.AHBCLK4Divider=RCC_SYSCLK_DIV1;
67+
68+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_3)!=HAL_OK) {
69+
Error_Handler();
70+
}
71+
72+
/** Initializes the peripherals clock
73+
*/
74+
PeriphClkInitStruct.PeriphClockSelection=RCC_PERIPHCLK_ADC |RCC_PERIPHCLK_LPUART1
75+
|RCC_PERIPHCLK_SMPS |RCC_PERIPHCLK_USB;
76+
PeriphClkInitStruct.PLLSAI1.PLLN=82;
77+
PeriphClkInitStruct.PLLSAI1.PLLP=RCC_PLLP_DIV8;
78+
PeriphClkInitStruct.PLLSAI1.PLLQ=RCC_PLLQ_DIV2;
79+
PeriphClkInitStruct.PLLSAI1.PLLR=RCC_PLLR_DIV8;
80+
PeriphClkInitStruct.PLLSAI1.PLLSAI1ClockOut=RCC_PLLSAI1_ADCCLK;
81+
PeriphClkInitStruct.AdcClockSelection=RCC_ADCCLKSOURCE_PLLSAI1;
82+
PeriphClkInitStruct.Lpuart1ClockSelection=RCC_LPUART1CLKSOURCE_HSI;
83+
PeriphClkInitStruct.SmpsClockSelection=RCC_SMPSCLKSOURCE_HSI;
84+
PeriphClkInitStruct.SmpsDivSelection=RCC_SMPSCLKDIV_RANGE1;
85+
PeriphClkInitStruct.UsbClockSelection=RCC_USBCLKSOURCE_HSI48;
86+
87+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct)!=HAL_OK) {
88+
Error_Handler();
89+
}
2890
}
2991

3092
#endif/* ARDUINO_GENERIC_* */
Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
/*
2+
******************************************************************************
3+
**
4+
** File : LinkerScript.ld
5+
**
6+
** Author : STM32CubeIDE
7+
**
8+
** Abstract : Linker script for STM32WB55xG Device
9+
** 1024Kbytes FLASH
10+
** 256Kbytes RAM
11+
**
12+
** Set heap size, stack size and stack location according
13+
** to application requirements.
14+
**
15+
** Set memory bank area and size if external memory is used.
16+
**
17+
** Target : STMicroelectronics STM32
18+
**
19+
** Distribution: The file is distributed as is without any warranty
20+
** of any kind.
21+
**
22+
*****************************************************************************
23+
** @attention
24+
**
25+
** Copyright (c) 2024 STMicroelectronics.
26+
** All rights reserved.
27+
**
28+
** This software is licensed under terms that can be found in the LICENSE file
29+
** in the root directory of this software component.
30+
** If no LICENSE file comes with this software, it is provided AS-IS.
31+
**
32+
*****************************************************************************
33+
*/
34+
35+
/* Entry Point */
36+
ENTRY(Reset_Handler)
37+
38+
/* Highest address of the user mode stack */
39+
_estack =ORIGIN(RAM) +LENGTH(RAM); /* end of RAM */
40+
/* Generate a link error if heap and stack don't fit into RAM */
41+
_Min_Heap_Size = 0x200; /* required amount of heap */
42+
_Min_Stack_Size = 0x400; /* required amount of stack */
43+
44+
/* Specify the memory areas */
45+
MEMORY
46+
{
47+
FLASH (rx) :ORIGIN = 0x08000000 + LD_FLASH_OFFSET,LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET
48+
RAM (xrw) :ORIGIN = 0x20000008,LENGTH = LD_MAX_DATA_SIZE - 8
49+
RAM_SHARED (xrw) :ORIGIN = 0x20030000,LENGTH = 10K
50+
}
51+
52+
/* Define output sections */
53+
SECTIONS
54+
{
55+
/* The startup code goes first into FLASH */
56+
.isr_vector :
57+
{
58+
. =ALIGN(4);
59+
KEEP(*(.isr_vector)) /* Startup code */
60+
. =ALIGN(4);
61+
} >FLASH
62+
63+
/* The program code and other data goes into FLASH */
64+
.text :
65+
{
66+
. =ALIGN(4);
67+
*(.text) /* .text sections (code) */
68+
*(.text*) /* .text* sections (code) */
69+
*(.glue_7) /* glue arm to thumb code */
70+
*(.glue_7t) /* glue thumb to arm code */
71+
*(.eh_frame)
72+
73+
KEEP (*(.init))
74+
KEEP (*(.fini))
75+
76+
. =ALIGN(4);
77+
_etext = .; /* define a global symbols at end of code */
78+
} >FLASH
79+
80+
/* Constant data goes into FLASH */
81+
.rodata :
82+
{
83+
. =ALIGN(4);
84+
*(.rodata) /* .rodata sections (constants, strings, etc.) */
85+
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
86+
. =ALIGN(4);
87+
} >FLASH
88+
89+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
90+
{
91+
*(.ARM.extab* .gnu.linkonce.armextab.*)
92+
} >FLASH
93+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
94+
{
95+
__exidx_start = .;
96+
*(.ARM.exidx*)
97+
__exidx_end = .;
98+
} >FLASH
99+
100+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
101+
{
102+
PROVIDE_HIDDEN (__preinit_array_start = .);
103+
KEEP (*(.preinit_array*))
104+
PROVIDE_HIDDEN (__preinit_array_end = .);
105+
} >FLASH
106+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
107+
{
108+
PROVIDE_HIDDEN (__init_array_start = .);
109+
KEEP (*(SORT(.init_array.*)))
110+
KEEP (*(.init_array*))
111+
PROVIDE_HIDDEN (__init_array_end = .);
112+
} >FLASH
113+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
114+
{
115+
PROVIDE_HIDDEN (__fini_array_start = .);
116+
KEEP (*(SORT(.fini_array.*)))
117+
KEEP (*(.fini_array*))
118+
PROVIDE_HIDDEN (__fini_array_end = .);
119+
} >FLASH
120+
121+
/* used by the startup to initialize data */
122+
_sidata =LOADADDR(.data);
123+
124+
/* Initialized data sections goes into RAM, load LMA copy after code */
125+
.data :
126+
{
127+
. =ALIGN(4);
128+
_sdata = .; /* create a global symbol at data start */
129+
*(.data) /* .data sections */
130+
*(.data*) /* .data* sections */
131+
*(.RamFunc) /* .RamFunc sections */
132+
*(.RamFunc*) /* .RamFunc* sections */
133+
134+
. =ALIGN(4);
135+
_edata = .; /* define a global symbol at data end */
136+
} >RAM AT> FLASH
137+
138+
/* Uninitialized data section */
139+
. =ALIGN(4);
140+
.bss :
141+
{
142+
/* This is used by the startup in order to initialize the .bss section */
143+
_sbss = .; /* define a global symbol at bss start */
144+
__bss_start__ = _sbss;
145+
*(.bss)
146+
*(.bss*)
147+
*(COMMON)
148+
149+
. =ALIGN(4);
150+
_ebss = .; /* define a global symbol at bss end */
151+
__bss_end__ = _ebss;
152+
} >RAM
153+
154+
/* User_heap_stack section, used to check that there is enough RAM left */
155+
._user_heap_stack :
156+
{
157+
. =ALIGN(8);
158+
PROVIDE ( end = . );
159+
PROVIDE ( _end = . );
160+
. = . + _Min_Heap_Size;
161+
. = . + _Min_Stack_Size;
162+
. =ALIGN(8);
163+
} >RAM
164+
165+
/* Remove information from the standard libraries */
166+
/DISCARD/ :
167+
{
168+
libc.a ( * )
169+
libm.a ( * )
170+
libgcc.a ( * )
171+
}
172+
173+
.ARM.attributes 0 : { *(.ARM.attributes) }
174+
MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
175+
MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
176+
177+
/* used by the startup to initialize .MB_MEM2 data */
178+
_siMB_MEM2 =LOADADDR(.MB_MEM2);
179+
.MB_MEM2 :
180+
{
181+
_sMB_MEM2 = . ;
182+
*(MB_MEM2) ;
183+
_eMB_MEM2 = . ;
184+
} >RAM_SHARED AT> FLASH
185+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp