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 <frederic.pillon@st.com>
1 parent 3cc33fa commit 4b531ba

21 files changed

+13718
-666
lines changed

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

Lines changed: 255 additions & 154 deletions
Large diffs are not rendered by default.

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

Lines changed: 255 additions & 154 deletions
Large diffs are not rendered by default.

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

Lines changed: 11558 additions & 0 deletions
Large diffs are not rendered by default.

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

Lines changed: 249 additions & 152 deletions
Large diffs are not rendered by default.

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

Lines changed: 249 additions & 152 deletions
Large diffs are not rendered by default.

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

Lines changed: 10 additions & 12 deletions
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

Lines changed: 1 addition & 2 deletions
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

Lines changed: 2 additions & 10 deletions
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

Lines changed: 41 additions & 8 deletions
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>
Lines changed: 178 additions & 0 deletions
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)
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