Skip to content

Commit 4b531ba

Browse files
committed
system(WL): update STM32WLxx CMSIS Drivers to v1.2.0
Included in STM32CubeWL FW v1.3.0 Signed-off-by: Frederic Pillon <[email protected]>
1 parent 3cc33fa commit 4b531ba

21 files changed

+13718
-666
lines changed

system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wl54xx.h

+255-154
Large diffs are not rendered by default.

system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wl55xx.h

+255-154
Large diffs are not rendered by default.

system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wl5mxx.h

+11,558
Large diffs are not rendered by default.

system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wle4xx.h

+249-152
Large diffs are not rendered by default.

system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wle5xx.h

+249-152
Large diffs are not rendered by default.

system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wlxx.h

+10-12
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
* is using in the C source code, usually in main.c. This file contains:
99
* - Configuration section that allows to select:
1010
* - The STM32WLxx device used in the target application
11-
* - To use or not the peripherals drivers in application code(i.e.
12-
* code will be based on direct access to peripherals registers
11+
* - To use or not the peripheral's drivers in application code(i.e.
12+
* code will be based on direct access to peripheral's registers
1313
* rather than drivers API), this option is controlled by
1414
* "#define USE_HAL_DRIVER"
1515
*
1616
******************************************************************************
1717
* @attention
1818
*
19-
* Copyright (c) 2020(-2021) STMicroelectronics.
19+
* Copyright (c) 2020-2021 STMicroelectronics.
2020
* All rights reserved.
2121
*
2222
* This software is licensed under terms that can be found in the LICENSE file
@@ -56,12 +56,13 @@
5656
application
5757
*/
5858

59-
#if !defined (STM32WL55xx) && !defined (STM32WL54xx) && !defined (STM32WLE5xx) && !defined (STM32WLE4xx)
59+
#if !defined (STM32WL55xx) && !defined (STM32WL54xx) && !defined (STM32WLE5xx) && !defined (STM32WLE4xx) && !defined(STM32WL5Mxx)
6060
/* #define STM32WL55xx */ /*!< STM32WL55xx Devices */
6161
/* #define STM32WL54xx */ /*!< STM32WL54xx Devices */
6262
/* #define STM32WLE5xx */ /*!< STM32WLE5xx Devices */
6363
/* #define STM32WLE4xx */ /*!< STM32WLE4xx Devices */
64-
#endif
64+
/* #define STM32WL5Mxx */ /*!< STM32WL5Mxx Devices */
65+
#endif /* STM32WL55xx ... */
6566

6667
/* Tip: To avoid modifying this file each time you need to switch between these
6768
devices, you can define the device in your toolchain compiler preprocessor.
@@ -79,7 +80,7 @@
7980
* @brief CMSIS Device version number
8081
*/
8182
#define __STM32WLxx_CMSIS_VERSION_MAIN (0x01U) /*!< [31:24] main version */
82-
#define __STM32WLxx_CMSIS_VERSION_SUB1 (0x01U) /*!< [23:16] sub1 version */
83+
#define __STM32WLxx_CMSIS_VERSION_SUB1 (0x02U) /*!< [23:16] sub1 version */
8384
#define __STM32WLxx_CMSIS_VERSION_SUB2 (0x00U) /*!< [15:8] sub2 version */
8485
#define __STM32WLxx_CMSIS_VERSION_RC (0x00U) /*!< [7:0] release candidate */
8586
#define __STM32WLxx_CMSIS_DEVICE_VERSION ((__STM32WLxx_CMSIS_VERSION_MAIN << 24)\
@@ -103,9 +104,11 @@
103104
#include "stm32wl54xx.h"
104105
#elif defined(STM32WLE4xx)
105106
#include "stm32wle4xx.h"
107+
#elif defined(STM32WL5Mxx)
108+
#include "stm32wl5mxx.h"
106109
#else
107110
#error "Please select first the target STM32WLxx device used in your application, for instance xxx (in stm32wlxx.h file)"
108-
#endif
111+
#endif /* STM32WL55xx ... */
109112

110113
/**
111114
* @}
@@ -275,8 +278,3 @@ typedef enum
275278
/**
276279
* @}
277280
*/
278-
279-
280-
281-
282-
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

system/Drivers/CMSIS/Device/ST/STM32WLxx/Include/system_stm32wlxx.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
******************************************************************************
77
* @attention
88
*
9-
* Copyright (c) 2020(-2021) STMicroelectronics.
9+
* Copyright (c) 2020-2021 STMicroelectronics.
1010
* All rights reserved.
1111
*
1212
* This software is licensed under terms that can be found in the LICENSE file
@@ -103,4 +103,3 @@ extern void SystemCoreClockUpdate(void);
103103
/**
104104
* @}
105105
*/
106-
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

system/Drivers/CMSIS/Device/ST/STM32WLxx/README.md

+2-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# STM32CubeWL CMSIS Device MCU Component
22

3-
![latest tag](https://img.shields.io/github/v/tag/STMicroelectronics/cmsis_device_wl.svg?color=brightgreen)
4-
53
## Overview
64

75
**STM32Cube** is an STMicroelectronics original initiative to ease the developers life by reducing efforts, time and cost.
@@ -27,17 +25,11 @@ Details about the content of this release are available in the release note [her
2725

2826
## Compatibility information
2927

30-
In this table, you can find the successive versions of this CMSIS Device component, in-line with the corresponding versions of the full MCU package:
31-
32-
CMSIS Device WL | CMSIS Core | Was delivered in the full MCU package
33-
--------------- | ---------- | -------------------------------------
34-
Tag v1.0.0 | Tag v5.6.0_cm4 | Tag v1.0.0
35-
Tag v1.1.0 | Tag v5.6.0_cm4 | Tag v1.1.0
36-
28+
It is **crucial** that you use a consistent set of versions for the CMSIS Core - CMSIS Device, as mentioned in [this](https://htmlpreview.github.io/?https://github.com/STMicroelectronics/STM32CubeWL/blob/main/Release_Notes.html) release note.
3729

3830
The full **STM32CubeWL** MCU package is available [here](https://github.com/STMicroelectronics/STM32CubeWL).
3931

4032
## Troubleshooting
4133
If you have any issue with the **Software content** of this repo, you can [file an issue on Github](https://github.com/STMicroelectronics/cmsis_device_wl/issues/new).
4234

43-
For any other question related to the product, the tools, the environment, you can submit a topic on the [ST Community/STM32 MCUs forum](https://community.st.com/s/topic/0TO0X000000BSqSWAW/stm32-mcus).
35+
For any other question related to the product, the tools, the environment, you can submit a topic on the [ST Community/STM32 MCUs forum](https://community.st.com/s/group/0F90X000000AXsASAW/stm32-mcus).

system/Drivers/CMSIS/Device/ST/STM32WLxx/Release_Notes.html

+41-8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ <h1 id="purpose">Purpose</h1>
3434
<li>STM32WL54xx devices</li>
3535
<li>STM32WLE5xx devices</li>
3636
<li>STM32WLE4xx devices</li>
37+
<li>STM32WL5Mxx devices</li>
3738
</ul>
3839
<p>This driver is composed of the descriptions of the registers under “Include” directory.</p>
3940
<p>Various template file are provided to easily build an application. They can be adapted to fit applications requirements.</p>
@@ -46,10 +47,42 @@ <h1 id="purpose">Purpose</h1>
4647
<div class="col-sm-12 col-lg-8">
4748
<h1 id="update-history">Update History</h1>
4849
<div class="collapse">
49-
<input type="checkbox" id="collapse-section2" checked aria-hidden="true"> <label for="collapse-section2" aria-hidden="true"><strong>V1.1.0 / 16-June-2021</strong></label>
50+
<input type="checkbox" id="collapse-section4" checked aria-hidden="true"> <label for="collapse-section4" aria-hidden="true"><strong>V1.2.0 / 09-November-2022</strong></label>
5051
<div>
5152
<h2 id="main-changes">Main Changes</h2>
5253
<ul>
54+
<li>Add new device STM32WL5Mxx</li>
55+
<li>Rename ADC_TRx to ADC_AWDxTR to match with Reference Manual</li>
56+
<li>Fix inconsistent IRQn_Type enumeration for supervisor call exception with alias for compatibility</li>
57+
</ul>
58+
<h2 id="known-limitations">Known Limitations</h2>
59+
<p>None</p>
60+
<h2 id="dependencies">Dependencies</h2>
61+
<p>None</p>
62+
<h2 id="notes">Notes</h2>
63+
<p>None</p>
64+
</div>
65+
</div>
66+
<div class="collapse">
67+
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true"><strong>V1.1.1 / 4-February-2022</strong></label>
68+
<div>
69+
<h2 id="main-changes-1">Main Changes</h2>
70+
<ul>
71+
<li>All source files and templates: update disclaimer to add reference to the new license agreement</li>
72+
</ul>
73+
<h2 id="known-limitations-1">Known Limitations</h2>
74+
<p>None</p>
75+
<h2 id="dependencies-1">Dependencies</h2>
76+
<p>None</p>
77+
<h2 id="notes-1">Notes</h2>
78+
<p>None</p>
79+
</div>
80+
</div>
81+
<div class="collapse">
82+
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true"><strong>V1.1.0 / 16-June-2021</strong></label>
83+
<div>
84+
<h2 id="main-changes-2">Main Changes</h2>
85+
<ul>
5386
<li>Add atomic register access services:
5487
<ul>
5588
<li>32-bit register access: ATOMIC_SET_BIT(), ATOMIC_CLEAR_BIT(), ATOMIC_MODIFY_REG()</li>
@@ -58,26 +91,26 @@ <h2 id="main-changes">Main Changes</h2>
5891
<li>Add define LSI_STARTUP_TIME used in default IWDG timeout calculation (HAL_IWDG_DEFAULT_TIMEOUT)</li>
5992
<li>Add reference to user manual for customization of CubeIDE linker files</li>
6093
</ul>
61-
<h2 id="known-limitations">Known Limitations</h2>
94+
<h2 id="known-limitations-2">Known Limitations</h2>
6295
<p>None</p>
63-
<h2 id="dependencies">Dependencies</h2>
96+
<h2 id="dependencies-2">Dependencies</h2>
6497
<p>None</p>
65-
<h2 id="notes">Notes</h2>
98+
<h2 id="notes-2">Notes</h2>
6699
<p>None</p>
67100
</div>
68101
</div>
69102
<div class="collapse">
70103
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true"><strong>V1.0.0 / 28-October-2020</strong></label>
71104
<div>
72-
<h2 id="main-changes-1">Main Changes</h2>
105+
<h2 id="main-changes-3">Main Changes</h2>
73106
<p><strong>First Official Release</strong></p>
74107
<h2 id="contents">Contents</h2>
75108
<p>First official release of CMSIS drivers for STM32WLxx lines</p>
76-
<h2 id="known-limitations-1">Known Limitations</h2>
109+
<h2 id="known-limitations-3">Known Limitations</h2>
77110
<p>None</p>
78-
<h2 id="dependencies-1">Dependencies</h2>
111+
<h2 id="dependencies-3">Dependencies</h2>
79112
<p>None</p>
80-
<h2 id="notes-1">Notes</h2>
113+
<h2 id="notes-3">Notes</h2>
81114
<p>None</p>
82115
</div>
83116
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
/*
2+
** LinkerScript
3+
** Note: For specific memory allocation, linker and startup files must be customized.
4+
** Refer to STM32CubeIDE user guide (UM2609), chapter "Modify the linker script".
5+
*/
6+
7+
/* Entry Point */
8+
ENTRY(Reset_Handler)
9+
10+
/* Highest address of the user mode stack */
11+
_estack = ORIGIN(RAM1) + LENGTH(RAM1); /* end of "SRAM1" Ram type memory */
12+
13+
_Min_Heap_Size = 0x200; /* required amount of heap */
14+
_Min_Stack_Size = 0x400; /* required amount of stack */
15+
16+
/* Memories definition */
17+
MEMORY
18+
{
19+
ROM (rx) : ORIGIN = 0x08020000, LENGTH = 128K /* Flash memory dedicated to CM0+ */
20+
RAM1 (xrw) : ORIGIN = 0x20004000, LENGTH = 16K /* Non-backup SRAM1 dedicated to CM0+ */
21+
RAM2 (xrw) : ORIGIN = 0x2000C000, LENGTH = 16K /* Backup SRAM2 dedicated to CM0+ */
22+
}
23+
24+
/* Sections */
25+
SECTIONS
26+
{
27+
/* The startup code into "ROM" Rom type memory */
28+
.isr_vector :
29+
{
30+
. = ALIGN(8);
31+
KEEP(*(.isr_vector)) /* Startup code */
32+
. = ALIGN(8);
33+
} >ROM
34+
35+
/* The program code and other data into "ROM" Rom type memory */
36+
.text :
37+
{
38+
. = ALIGN(8);
39+
*(.text) /* .text sections (code) */
40+
*(.text*) /* .text* sections (code) */
41+
*(.glue_7) /* glue arm to thumb code */
42+
*(.glue_7t) /* glue thumb to arm code */
43+
*(.eh_frame)
44+
45+
KEEP (*(.init))
46+
KEEP (*(.fini))
47+
48+
. = ALIGN(8);
49+
_etext = .; /* define a global symbols at end of code */
50+
} >ROM
51+
52+
/* Constant data into "ROM" Rom type memory */
53+
.rodata :
54+
{
55+
. = ALIGN(8);
56+
*(.rodata) /* .rodata sections (constants, strings, etc.) */
57+
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
58+
. = ALIGN(8);
59+
} >ROM
60+
61+
.ARM.extab : {
62+
. = ALIGN(8);
63+
*(.ARM.extab* .gnu.linkonce.armextab.*)
64+
. = ALIGN(8);
65+
} >ROM
66+
67+
.ARM : {
68+
. = ALIGN(8);
69+
__exidx_start = .;
70+
*(.ARM.exidx*)
71+
__exidx_end = .;
72+
. = ALIGN(8);
73+
} >ROM
74+
75+
.preinit_array :
76+
{
77+
. = ALIGN(8);
78+
PROVIDE_HIDDEN (__preinit_array_start = .);
79+
KEEP (*(.preinit_array*))
80+
PROVIDE_HIDDEN (__preinit_array_end = .);
81+
. = ALIGN(8);
82+
} >ROM
83+
84+
.init_array :
85+
{
86+
. = ALIGN(8);
87+
PROVIDE_HIDDEN (__init_array_start = .);
88+
KEEP (*(SORT(.init_array.*)))
89+
KEEP (*(.init_array*))
90+
PROVIDE_HIDDEN (__init_array_end = .);
91+
. = ALIGN(8);
92+
} >ROM
93+
94+
.fini_array :
95+
{
96+
. = ALIGN(8);
97+
PROVIDE_HIDDEN (__fini_array_start = .);
98+
KEEP (*(SORT(.fini_array.*)))
99+
KEEP (*(.fini_array*))
100+
PROVIDE_HIDDEN (__fini_array_end = .);
101+
. = ALIGN(8);
102+
} >ROM
103+
104+
/* Used by the startup to initialize data */
105+
_sidata = LOADADDR(.data);
106+
107+
/* Initialized data sections into "SRAM1" Ram type memory */
108+
.data :
109+
{
110+
. = ALIGN(8);
111+
_sdata = .; /* create a global symbol at data start */
112+
*(.data) /* .data sections */
113+
*(.data*) /* .data* sections */
114+
115+
. = ALIGN(8);
116+
_edata = .; /* define a global symbol at data end */
117+
118+
} >RAM1 AT> ROM
119+
120+
/* Uninitialized data section into "SRAM1" Ram type memory */
121+
. = ALIGN(8);
122+
.bss :
123+
{
124+
/* This is used by the startup in order to initialize the .bss section */
125+
_sbss = .; /* define a global symbol at bss start */
126+
__bss_start__ = _sbss;
127+
*(.bss)
128+
*(.bss*)
129+
*(COMMON)
130+
131+
. = ALIGN(8);
132+
_ebss = .; /* define a global symbol at bss end */
133+
__bss_end__ = _ebss;
134+
} >RAM1
135+
136+
/* Data section into "SRAM1" Ram type memory: Non-backup SRAM1 dedicated to CM0+ */
137+
. = ALIGN(8);
138+
RAM1_region :
139+
{
140+
_sRAM1_region = .; /* define a global symbol at section start */
141+
*(.RAM1_region)
142+
143+
. = ALIGN(8);
144+
_eRAM1_region = .; /* define a global symbol at section end */
145+
} >RAM1
146+
147+
/* Data section into "SRAM2" Ram type memory: Backup SRAM2 dedicated to CM0+ */
148+
. = ALIGN(8);
149+
RAM2_region :
150+
{
151+
_sRAM2_region = .; /* define a global symbol at section start */
152+
*(.RAM2_region)
153+
154+
. = ALIGN(8);
155+
_eRAM2_region = .; /* define a global symbol at section end */
156+
} >RAM2
157+
158+
/* User_heap_stack section, used to check that there is enough "SRAM1" Ram type memory left */
159+
._user_heap_stack :
160+
{
161+
. = ALIGN(8);
162+
PROVIDE ( end = . );
163+
PROVIDE ( _end = . );
164+
. = . + _Min_Heap_Size;
165+
. = . + _Min_Stack_Size;
166+
. = ALIGN(8);
167+
} >RAM1
168+
169+
/* Remove information from the compiler libraries */
170+
/DISCARD/ :
171+
{
172+
libc.a ( * )
173+
libm.a ( * )
174+
libgcc.a ( * )
175+
}
176+
177+
.ARM.attributes 0 : { *(.ARM.attributes) }
178+
}

0 commit comments

Comments
 (0)