Release v1.12.0
diff --git a/Include/stm32wb35xx.h b/Include/stm32wb35xx.h
index d583778..68fec52 100644
--- a/Include/stm32wb35xx.h
+++ b/Include/stm32wb35xx.h
@@ -12162,10 +12162,8 @@
/* USB Device General registers */
/* */
/******************************************************************************/
-#define USB_BASE (0x40005C00UL) /*!< USB_IP Peripheral Registers base address */
-#define USB_PMAADDR_Pos (13U)
-#define USB_PMAADDR_Msk (0x20003UL << USB_PMAADDR_Pos) /*!< 0x40006000 */
-#define USB_PMAADDR USB_PMAADDR_Msk /*!< USB_IP Packet Memory Area base address */
+#define USB_BASE (USB1_BASE) /*!< USB_IP Peripheral Registers base address */
+#define USB_PMAADDR (USB1_PMAADDR) /*!< USB_IP Packet Memory Area base address */
#define USB_CNTR (USB_BASE + 0x40) /*!< Control register */
#define USB_ISTR (USB_BASE + 0x44) /*!< Interrupt status register */
diff --git a/Include/stm32wb55xx.h b/Include/stm32wb55xx.h
index 9819ab5..1796dfc 100644
--- a/Include/stm32wb55xx.h
+++ b/Include/stm32wb55xx.h
@@ -13067,10 +13067,8 @@
/* USB Device General registers */
/* */
/******************************************************************************/
-#define USB_BASE (0x40005C00UL) /*!< USB_IP Peripheral Registers base address */
-#define USB_PMAADDR_Pos (13U)
-#define USB_PMAADDR_Msk (0x20003UL << USB_PMAADDR_Pos) /*!< 0x40006000 */
-#define USB_PMAADDR USB_PMAADDR_Msk /*!< USB_IP Packet Memory Area base address */
+#define USB_BASE (USB1_BASE) /*!< USB_IP Peripheral Registers base address */
+#define USB_PMAADDR (USB1_PMAADDR) /*!< USB_IP Packet Memory Area base address */
#define USB_CNTR (USB_BASE + 0x40) /*!< Control register */
#define USB_ISTR (USB_BASE + 0x44) /*!< Interrupt status register */
diff --git a/Include/stm32wb5mxx.h b/Include/stm32wb5mxx.h
index 91710ec..88e45f8 100644
--- a/Include/stm32wb5mxx.h
+++ b/Include/stm32wb5mxx.h
@@ -13067,10 +13067,8 @@
/* USB Device General registers */
/* */
/******************************************************************************/
-#define USB_BASE (0x40005C00UL) /*!< USB_IP Peripheral Registers base address */
-#define USB_PMAADDR_Pos (13U)
-#define USB_PMAADDR_Msk (0x20003UL << USB_PMAADDR_Pos) /*!< 0x40006000 */
-#define USB_PMAADDR USB_PMAADDR_Msk /*!< USB_IP Packet Memory Area base address */
+#define USB_BASE (USB1_BASE) /*!< USB_IP Peripheral Registers base address */
+#define USB_PMAADDR (USB1_PMAADDR) /*!< USB_IP Packet Memory Area base address */
#define USB_CNTR (USB_BASE + 0x40) /*!< Control register */
#define USB_ISTR (USB_BASE + 0x44) /*!< Interrupt status register */
diff --git a/Include/stm32wbxx.h b/Include/stm32wbxx.h
index 3efb7f5..8f4bfc1 100644
--- a/Include/stm32wbxx.h
+++ b/Include/stm32wbxx.h
@@ -68,7 +68,7 @@
* @brief CMSIS Device version number
*/
#define __STM32WBxx_CMSIS_VERSION_MAIN (0x01U) /*!< [31:24] main version */
-#define __STM32WBxx_CMSIS_VERSION_SUB1 (0x0BU) /*!< [23:16] sub1 version */
+#define __STM32WBxx_CMSIS_VERSION_SUB1 (0x0CU) /*!< [23:16] sub1 version */
#define __STM32WBxx_CMSIS_VERSION_SUB2 (0x00U) /*!< [15:8] sub2 version */
#define __STM32WBxx_CMSIS_VERSION_RC (0x00U) /*!< [7:0] release candidate */
#define __STM32WBxx_CMSIS_DEVICE_VERSION ((__STM32WBxx_CMSIS_VERSION_MAIN << 24)\
diff --git a/Release_Notes.html b/Release_Notes.html
index ccaca76..2d94d71 100644
--- a/Release_Notes.html
+++ b/Release_Notes.html
@@ -43,8 +43,8 @@
<p>Various template file are provided to easily build an application. They can be adapted to fit applications requirements.</p>
<ul>
<li>Templates/system_stm32wbxx.c contains the initialization code referred as SystemInit.</li>
-<li>Startup files are provided as example for IAR©, KEIL© and SW4STM32©.</li>
-<li>Linker files are provided as example for IAR©, KEIL© and SW4STM32©.</li>
+<li>Startup files are provided as example for IAR©, KEIL© and STM32CubeIDE©.</li>
+<li>Linker files are provided as example for IAR©, KEIL© and STM32CubeIDE©.</li>
</ul>
<h1 id="specific-consideration-for-available-flash-size-inside-linker-file">Specific consideration for available FLASH size inside linker file</h1>
<p>The available flash size depends on the wireless binary used inside the STM32WB device.</p>
@@ -90,11 +90,13 @@
<div class="col-sm-12 col-lg-8">
<h1 id="update-history">Update History</h1>
<div class="collapse">
-<input type="checkbox" id="collapse-section12" checked aria-hidden="true"> <label for="collapse-section12" aria-hidden="true">V1.11.0 / 08-June-2022</label>
+<input type="checkbox" id="collapse-section13" checked aria-hidden="true"> <label for="collapse-section13" aria-hidden="true">V1.12.0 / 09-November-2022</label>
<div>
<h2 id="main-changes">Main Changes</h2>
<ul>
-<li>Add support for the upcoming STM32WB1M device</li>
+<li>Fix incorrect USB_BASE and USB_PMAADDR addresses</li>
+<li>Fix initialization missing of data in RAM2 memory</li>
+<li>Add specific LSE_VALUE for STM32WB5Mxx</li>
</ul>
<h2 id="supported-devices-and-boards">Supported Devices and boards</h2>
<ul>
@@ -103,26 +105,24 @@
</div>
</div>
<div class="collapse">
-<input type="checkbox" id="collapse-section11" aria-hidden="true"> <label for="collapse-section11" aria-hidden="true">V1.10.1 / 25-March-2022</label>
+<input type="checkbox" id="collapse-section12" aria-hidden="true"> <label for="collapse-section12" aria-hidden="true">V1.11.0 / 08-June-2022</label>
<div>
<h2 id="main-changes-1">Main Changes</h2>
<ul>
-<li>Align ADC registers naming on Reference Manual (For STM32WB15xx & STM32WB10xx)</li>
+<li>Add support for the upcoming STM32WB1M device</li>
</ul>
<h2 id="supported-devices-and-boards-1">Supported Devices and boards</h2>
<ul>
-<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx, STM32WB30xx, STM32WB15xx and STM32WB10xx devices.</li>
+<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx, STM32WB30xx, STM32WB15xx, STM32WB10xx and STM32WB1Mxx devices.</li>
</ul>
</div>
</div>
<div class="collapse">
-<input type="checkbox" id="collapse-section10" aria-hidden="true"> <label for="collapse-section10" aria-hidden="true">V1.10.0 / 12-November-2021</label>
+<input type="checkbox" id="collapse-section11" aria-hidden="true"> <label for="collapse-section11" aria-hidden="true">V1.10.1 / 25-March-2022</label>
<div>
<h2 id="main-changes-2">Main Changes</h2>
<ul>
-<li>Update CMSIS devices drivers for all value lines not supporting SMPS</li>
-<li>All source files and templates: update disclaimer to add reference to the new license agreement</li>
-<li>Correct English spelling typos and remove non UTF-8 characters in comments</li>
+<li>Align ADC registers naming on Reference Manual (For STM32WB15xx & STM32WB10xx)</li>
</ul>
<h2 id="supported-devices-and-boards-2">Supported Devices and boards</h2>
<ul>
@@ -131,10 +131,25 @@
</div>
</div>
<div class="collapse">
-<input type="checkbox" id="collapse-section9" aria-hidden="true"> <label for="collapse-section9" aria-hidden="true">V1.9.0 / 24-June-2021</label>
+<input type="checkbox" id="collapse-section10" aria-hidden="true"> <label for="collapse-section10" aria-hidden="true">V1.10.0 / 12-November-2021</label>
<div>
<h2 id="main-changes-3">Main Changes</h2>
<ul>
+<li>Update CMSIS devices drivers for all value lines not supporting SMPS</li>
+<li>All source files and templates: update disclaimer to add reference to the new license agreement</li>
+<li>Correct English spelling typos and remove non UTF-8 characters in comments</li>
+</ul>
+<h2 id="supported-devices-and-boards-3">Supported Devices and boards</h2>
+<ul>
+<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx, STM32WB30xx, STM32WB15xx and STM32WB10xx devices.</li>
+</ul>
+</div>
+</div>
+<div class="collapse">
+<input type="checkbox" id="collapse-section9" aria-hidden="true"> <label for="collapse-section9" aria-hidden="true">V1.9.0 / 24-June-2021</label>
+<div>
+<h2 id="main-changes-4">Main Changes</h2>
+<ul>
<li>Add atomic register access services:
<ul>
<li>32-bit register access: ATOMIC_SET_BIT(), ATOMIC_CLEAR_BIT(), ATOMIC_MODIFY_REG()</li>
@@ -147,7 +162,7 @@
<li>Add define LSI_STARTUP_TIME used in default IWDG timeout calculation (HAL_IWDG_DEFAULT_TIMEOUT)</li>
<li>Add define FLASH_ECCR_CPUID bits for new macro __HAL_FLASH_ECC_CPUID() macro</li>
</ul>
-<h2 id="supported-devices-and-boards-3">Supported Devices and boards</h2>
+<h2 id="supported-devices-and-boards-4">Supported Devices and boards</h2>
<ul>
<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx, STM32WB30xx, STM32WB15xx and STM32WB10xx devices.</li>
</ul>
@@ -156,7 +171,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section8" aria-hidden="true"> <label for="collapse-section8" aria-hidden="true">V1.8.0 / 09-February-2021</label>
<div>
-<h2 id="main-changes-4">Main Changes</h2>
+<h2 id="main-changes-5">Main Changes</h2>
<h3 id="add-support-for-stm32wb15xx-and-stm32wb10xx">Add support for STM32WB15xx and STM32WB10xx</h3>
<ul>
<li>Change how to adapt VTOR for user</li>
@@ -167,7 +182,7 @@
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
<li>System Workbench STM32 (SW4STM32) toolchain V2.7</li>
</ul>
-<h2 id="supported-devices-and-boards-4">Supported Devices and boards</h2>
+<h2 id="supported-devices-and-boards-5">Supported Devices and boards</h2>
<ul>
<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx, STM32WB30xx, STM32WB15xx and STM32WB10xx devices.</li>
</ul>
@@ -176,7 +191,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section7" aria-hidden="true"> <label for="collapse-section7" aria-hidden="true">V1.7.0 / 30-October-2020</label>
<div>
-<h2 id="main-changes-5">Main Changes</h2>
+<h2 id="main-changes-6">Main Changes</h2>
<h3 id="maintenance-release">Maintenance release</h3>
<p>Maintenance release for <strong>STM32WBxx</strong> devices (stm32wb55xx, stm32wb50xx, stm32wb35xx and stm32wb30xx devices)</p>
<table>
@@ -206,7 +221,7 @@
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
<li>System Workbench STM32 (SW4STM32) toolchain V2.7</li>
</ul>
-<h2 id="supported-devices-and-boards-5">Supported Devices and boards</h2>
+<h2 id="supported-devices-and-boards-6">Supported Devices and boards</h2>
<ul>
<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx and STM32WB30xx devices.</li>
</ul>
@@ -215,7 +230,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section6" aria-hidden="true"> <label for="collapse-section6" aria-hidden="true">v1.6.0 / 05-June-2020</label>
<div>
-<h2 id="main-changes-6">Main Changes</h2>
+<h2 id="main-changes-7">Main Changes</h2>
<h3 id="maintenance-release-1">Maintenance release</h3>
<p>Maintenance release for <strong>STM32WBxx</strong> devices (stm32wb55xx, stm32wb50xx, stm32wb35xx and stm32wb30xx devices)</p>
<table>
@@ -254,7 +269,7 @@
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
<li>System Workbench STM32 (SW4STM32) toolchain V2.7</li>
</ul>
-<h2 id="supported-devices-and-boards-6">Supported Devices and boards</h2>
+<h2 id="supported-devices-and-boards-7">Supported Devices and boards</h2>
<ul>
<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx and STM32WB30xx devices.</li>
</ul>
@@ -263,7 +278,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section5" aria-hidden="true"> <label for="collapse-section5" aria-hidden="true">V1.4.0 / 12-February-2020</label>
<div>
-<h2 id="main-changes-7">Main Changes</h2>
+<h2 id="main-changes-8">Main Changes</h2>
<h3 id="introduction-of-stm32wb35xx-stm32wb30xx-and-stm32wb5mxx-product">Introduction of STM32WB35xx, STM32WB30xx and STM32WB5Mxx product</h3>
<p>This release introduce the support of STM32WB5Mxx, STM32WB35xx product and its value line STM32WB30xx.</p>
<p>Added features:</p>
@@ -281,7 +296,7 @@
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
<li>System Workbench STM32 (SW4STM32) toolchain V2.7</li>
</ul>
-<h2 id="supported-devices-and-boards-7">Supported Devices and boards</h2>
+<h2 id="supported-devices-and-boards-8">Supported Devices and boards</h2>
<ul>
<li>STM32WB55xx, STM32WB5Mxx, STM32WB50xx, STM32WB35xx and STM32WB30xx devices.</li>
</ul>
@@ -290,7 +305,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true">V1.3.0 / 11-September-2019</label>
<div>
-<h2 id="main-changes-8">Main Changes</h2>
+<h2 id="main-changes-9">Main Changes</h2>
<p>Maintenance release for <strong>STM32WBxx</strong> devices (stm32wb55xx and stm32wb50xx devices)</p>
<table>
<thead>
@@ -319,7 +334,7 @@
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
<li>System Workbench STM32 (SW4STM32) toolchain V2.7</li>
</ul>
-<h2 id="supported-devices-and-boards-8">Supported Devices and boards</h2>
+<h2 id="supported-devices-and-boards-9">Supported Devices and boards</h2>
<ul>
<li>STM32WB55xx, STM32WB50xx devices</li>
</ul>
@@ -328,7 +343,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true">V1.2.0 / 26-June-2019</label>
<div>
-<h2 id="main-changes-9">Main Changes</h2>
+<h2 id="main-changes-10">Main Changes</h2>
<h3 id="introduction-of-stm32wb50xx-device">Introduction of STM32WB50xx device</h3>
<p>First release for STM32WBxx CMSIS introducing <strong>stm32wb50xx</strong> devices.</p>
<h2 id="contents">Contents</h2>
@@ -339,7 +354,7 @@
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
<li>System Workbench STM32 (SW4STM32) toolchain V2.7</li>
</ul>
-<h2 id="supported-devices-and-boards-9">Supported Devices and boards</h2>
+<h2 id="supported-devices-and-boards-10">Supported Devices and boards</h2>
<ul>
<li>STM32WB55xx and STM32WB50xx devices</li>
</ul>
@@ -348,7 +363,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true">V1.1.0 / 05-April-2019</label>
<div>
-<h2 id="main-changes-10">Main Changes</h2>
+<h2 id="main-changes-11">Main Changes</h2>
<h3 id="maintenance-release-2">Maintenance release</h3>
<p>Maintenance release for <strong>STM32WBxx</strong> devices (stm32wb55xx devices)</p>
<table>
@@ -372,7 +387,7 @@
<div class="collapse">
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true">V1.0.0 / 06-February-2019</label>
<div>
-<h2 id="main-changes-11">Main Changes</h2>
+<h2 id="main-changes-12">Main Changes</h2>
<h3 id="first-release">First release</h3>
<p>Add support of STM32WB55xx.</p>
</div>
diff --git a/Source/Templates/gcc/linker/stm32wb10xx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb10xx_flash_cm4.ld
index e6aa078..971ee11 100644
--- a/Source/Templates/gcc/linker/stm32wb10xx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb10xx_flash_cm4.ld
@@ -1,11 +1,11 @@
-/*
+/**
******************************************************************************
**
-** File : LinkerScript.ld
+** File : stm32wb10xx_flash_cm4.ld
**
** Author : STM32CubeIDE
**
-** Abstract : Linker script for STM32WB15xC Device
+** Abstract : Linker script for STM32WB10xx Device
** 320Kbytes FLASH
** 48Kbytes RAM
**
@@ -22,7 +22,7 @@
*****************************************************************************
** @attention
**
-** Copyright (c) 2020 STMicroelectronics.
+** Copyright (c) 2020-2022 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
@@ -38,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20003000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400 ; /* required amount of heap */
+_Min_Heap_Size = 0x400 ; /* required amount of heap */
_Min_Stack_Size = 0x1000 ; /* required amount of stack */
/* Specify the memory areas */
@@ -118,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -131,7 +131,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -159,8 +158,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -170,9 +167,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/linker/stm32wb15xx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb15xx_flash_cm4.ld
index e6aa078..20f342b 100644
--- a/Source/Templates/gcc/linker/stm32wb15xx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb15xx_flash_cm4.ld
@@ -1,11 +1,11 @@
-/*
+/**
******************************************************************************
**
-** File : LinkerScript.ld
+** File : stm32wb15xx_flash_cm4.ld
**
** Author : STM32CubeIDE
**
-** Abstract : Linker script for STM32WB15xC Device
+** Abstract : Linker script for STM32WB15xx Device
** 320Kbytes FLASH
** 48Kbytes RAM
**
@@ -22,7 +22,7 @@
*****************************************************************************
** @attention
**
-** Copyright (c) 2020 STMicroelectronics.
+** Copyright (c) 2020-2022 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
@@ -38,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20003000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400 ; /* required amount of heap */
+_Min_Heap_Size = 0x400 ; /* required amount of heap */
_Min_Stack_Size = 0x1000 ; /* required amount of stack */
/* Specify the memory areas */
@@ -118,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -131,7 +131,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -159,8 +158,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -170,9 +167,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/linker/stm32wb1mxx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb1mxx_flash_cm4.ld
index 05955af..973c830 100644
--- a/Source/Templates/gcc/linker/stm32wb1mxx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb1mxx_flash_cm4.ld
@@ -1,11 +1,11 @@
-/*
+/**
******************************************************************************
**
-** File : LinkerScript.ld
+** File : stm32wb1mxx_flash_cm4.ld
**
** Author : STM32CubeIDE
**
-** Abstract : Linker script for STM32WB15xC Device
+** Abstract : Linker script for STM32WB1Mxx Device
** 320Kbytes FLASH
** 48Kbytes RAM
**
@@ -38,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20003000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400 ; /* required amount of heap */
+_Min_Heap_Size = 0x400 ; /* required amount of heap */
_Min_Stack_Size = 0x1000 ; /* required amount of stack */
/* Specify the memory areas */
@@ -118,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -131,7 +131,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -159,8 +158,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -170,9 +167,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/linker/stm32wb30xx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb30xx_flash_cm4.ld
index 7743fd9..c82ab64 100644
--- a/Source/Templates/gcc/linker/stm32wb30xx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb30xx_flash_cm4.ld
@@ -3,21 +3,26 @@
**
** File : stm32wb30xx_flash_cm4.ld
**
-** Abstract : System Workbench Minimal System calls file
+** Author : STM32CubeIDE
**
-** For more information about which c-functions
-** need which of these lowlevel functions
-** please consult the Newlib libc-manual
+** Abstract : Linker script for STM32WB30xx Device
+** 512Kbytes FLASH
+** 96Kbytes RAM
**
-** Environment : System Workbench for MCU
+** Set heap size, stack size and stack location according
+** to application requirements.
**
-** Distribution: The file is distributed “as is,” without any warranty
+** Set memory bank area and size if external memory is used.
+**
+** Target : STMicroelectronics STM32
+**
+** Distribution: The file is distributed as is without any warranty
** of any kind.
**
*****************************************************************************
** @attention
**
-** Copyright (c) 2019 STMicroelectronics.
+** Copyright (c) 2019-2022 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
@@ -33,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20008000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400; /* required amount of heap */
+_Min_Heap_Size = 0x400; /* required amount of heap */
_Min_Stack_Size = 0x1000; /* required amount of stack */
/* Specify the memory areas */
@@ -113,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -124,7 +129,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -152,8 +156,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -163,9 +165,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/linker/stm32wb35xx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb35xx_flash_cm4.ld
index dead7a9..282769e 100644
--- a/Source/Templates/gcc/linker/stm32wb35xx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb35xx_flash_cm4.ld
@@ -3,21 +3,26 @@
**
** File : stm32wb35xx_flash_cm4.ld
**
-** Abstract : System Workbench Minimal System calls file
+** Author : STM32CubeIDE
**
-** For more information about which c-functions
-** need which of these lowlevel functions
-** please consult the Newlib libc-manual
+** Abstract : Linker script for STM32WB35xx Device
+** 512Kbytes FLASH
+** 96Kbytes RAM
**
-** Environment : System Workbench for MCU
+** Set heap size, stack size and stack location according
+** to application requirements.
**
-** Distribution: The file is distributed “as is,” without any warranty
+** Set memory bank area and size if external memory is used.
+**
+** Target : STMicroelectronics STM32
+**
+** Distribution: The file is distributed as is without any warranty
** of any kind.
**
*****************************************************************************
** @attention
**
-** Copyright (c) 2019 STMicroelectronics.
+** Copyright (c) 2019-2022 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
@@ -33,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20008000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400; /* required amount of heap */
+_Min_Heap_Size = 0x400; /* required amount of heap */
_Min_Stack_Size = 0x1000; /* required amount of stack */
/* Specify the memory areas */
@@ -113,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -124,7 +129,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -152,8 +156,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -163,9 +165,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/linker/stm32wb50xx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb50xx_flash_cm4.ld
index 4a8bd3f..f0949f0 100644
--- a/Source/Templates/gcc/linker/stm32wb50xx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb50xx_flash_cm4.ld
@@ -3,21 +3,26 @@
**
** File : stm32wb50xx_flash_cm4.ld
**
-** Abstract : System Workbench Minimal System calls file
+** Author : STM32CubeIDE
**
-** For more information about which c-functions
-** need which of these lowlevel functions
-** please consult the Newlib libc-manual
+** Abstract : Linker script for STM32WB50xx Device
+** 1024Kbytes FLASH
+** 128Kbytes RAM
**
-** Environment : System Workbench for MCU
+** Set heap size, stack size and stack location according
+** to application requirements.
**
-** Distribution: The file is distributed “as is,” without any warranty
+** Set memory bank area and size if external memory is used.
+**
+** Target : STMicroelectronics STM32
+**
+** Distribution: The file is distributed as is without any warranty
** of any kind.
**
*****************************************************************************
** @attention
**
-** Copyright (c) 2019 STMicroelectronics.
+** Copyright (c) 2019-2022 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
@@ -33,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20010000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400; /* required amount of heap */
+_Min_Heap_Size = 0x400; /* required amount of heap */
_Min_Stack_Size = 0x1000; /* required amount of stack */
/* Specify the memory areas */
@@ -113,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -124,7 +129,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -152,8 +156,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -163,9 +165,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/linker/stm32wb55xx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb55xx_flash_cm4.ld
index 660f301..c6d139e 100644
--- a/Source/Templates/gcc/linker/stm32wb55xx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb55xx_flash_cm4.ld
@@ -3,21 +3,26 @@
**
** File : stm32wb55xx_flash_cm4.ld
**
-** Abstract : System Workbench Minimal System calls file
+** Author : STM32CubeIDE
**
-** For more information about which c-functions
-** need which of these lowlevel functions
-** please consult the Newlib libc-manual
+** Abstract : Linker script for STM32WB55xx Device
+** 1024Kbytes FLASH
+** 128Kbytes RAM
**
-** Environment : System Workbench for MCU
+** Set heap size, stack size and stack location according
+** to application requirements.
**
-** Distribution: The file is distributed “as is,” without any warranty
+** Set memory bank area and size if external memory is used.
+**
+** Target : STMicroelectronics STM32
+**
+** Distribution: The file is distributed as is without any warranty
** of any kind.
**
*****************************************************************************
** @attention
**
-** Copyright (c) 2019 STMicroelectronics.
+** Copyright (c) 2019-2022 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
@@ -33,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20030000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400; /* required amount of heap */
+_Min_Heap_Size = 0x400; /* required amount of heap */
_Min_Stack_Size = 0x1000; /* required amount of stack */
/* Specify the memory areas */
@@ -113,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -124,7 +129,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -152,8 +156,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -163,9 +165,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/linker/stm32wb5mxx_flash_cm4.ld b/Source/Templates/gcc/linker/stm32wb5mxx_flash_cm4.ld
index d1d82de..a9af6a1 100644
--- a/Source/Templates/gcc/linker/stm32wb5mxx_flash_cm4.ld
+++ b/Source/Templates/gcc/linker/stm32wb5mxx_flash_cm4.ld
@@ -3,21 +3,26 @@
**
** File : stm32wb5mxx_flash_cm4.ld
**
-** Abstract : System Workbench Minimal System calls file
+** Author : STM32CubeIDE
**
-** For more information about which c-functions
-** need which of these lowlevel functions
-** please consult the Newlib libc-manual
+** Abstract : Linker script for STM32WB5Mxx Device
+** 1024Kbytes FLASH
+** 128Kbytes RAM
**
-** Environment : System Workbench for MCU
+** Set heap size, stack size and stack location according
+** to application requirements.
**
-** Distribution: The file is distributed “as is,” without any warranty
+** Set memory bank area and size if external memory is used.
+**
+** Target : STMicroelectronics STM32
+**
+** Distribution: The file is distributed as is without any warranty
** of any kind.
**
*****************************************************************************
** @attention
**
-** Copyright (c) 2019 STMicroelectronics.
+** Copyright (c) 2019-2022 STMicroelectronics.
** All rights reserved.
**
** This software is licensed under terms that can be found in the LICENSE file
@@ -33,7 +38,7 @@
/* Highest address of the user mode stack */
_estack = 0x20030000; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x400; /* required amount of heap */
+_Min_Heap_Size = 0x400; /* required amount of heap */
_Min_Stack_Size = 0x1000; /* required amount of stack */
/* Specify the memory areas */
@@ -113,7 +118,7 @@
_sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
+ .data :
{
. = ALIGN(4);
_sdata = .; /* create a global symbol at data start */
@@ -124,7 +129,6 @@
_edata = .; /* define a global symbol at data end */
} >RAM1 AT> FLASH
-
/* Uninitialized data section */
. = ALIGN(4);
.bss :
@@ -152,8 +156,6 @@
. = ALIGN(8);
} >RAM1
-
-
/* Remove information from the standard libraries */
/DISCARD/ :
{
@@ -163,9 +165,17 @@
}
.ARM.attributes 0 : { *(.ARM.attributes) }
- MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
- MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
- MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+
+ /* used by the startup to initialize .MB_MEM2 data */
+ _siMB_MEM2 = LOADADDR(.MB_MEM2);
+ .MB_MEM2 :
+ {
+ _sMB_MEM2 = . ;
+ *(MB_MEM2) ;
+ _eMB_MEM2 = . ;
+ } >RAM_SHARED AT> FLASH
}
diff --git a/Source/Templates/gcc/startup_stm32wb10xx_cm4.s b/Source/Templates/gcc/startup_stm32wb10xx_cm4.s
index 9be0cca..096e218 100644
--- a/Source/Templates/gcc/startup_stm32wb10xx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb10xx_cm4.s
@@ -14,7 +14,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2019-2021 STMicroelectronics.
+ * Copyright (c) 2019-2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
-.word _ebss
+.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -97,20 +100,20 @@
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
- INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
-.size Reset_Handler, .-Reset_Handler
+.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
@@ -123,8 +126,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +135,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +228,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/gcc/startup_stm32wb15xx_cm4.s b/Source/Templates/gcc/startup_stm32wb15xx_cm4.s
index 5e1a465..2c6949e 100644
--- a/Source/Templates/gcc/startup_stm32wb15xx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb15xx_cm4.s
@@ -14,7 +14,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2019-2021 STMicroelectronics.
+ * Copyright (c) 2019-2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
-.word _ebss
+.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -97,20 +100,20 @@
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
- INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
-
-.size Reset_Handler, .-Reset_Handler
+
+.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
@@ -123,8 +126,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +135,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +228,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/gcc/startup_stm32wb1mxx_cm4.s b/Source/Templates/gcc/startup_stm32wb1mxx_cm4.s
index 6c726c4..0975a74 100644
--- a/Source/Templates/gcc/startup_stm32wb1mxx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb1mxx_cm4.s
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
-.word _ebss
+.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -97,20 +100,20 @@
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
- INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
-
-.size Reset_Handler, .-Reset_Handler
+
+.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
@@ -123,8 +126,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +135,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +228,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/gcc/startup_stm32wb30xx_cm4.s b/Source/Templates/gcc/startup_stm32wb30xx_cm4.s
index 2c1110e..4efe128 100644
--- a/Source/Templates/gcc/startup_stm32wb30xx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb30xx_cm4.s
@@ -14,7 +14,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2019-2021 STMicroelectronics.
+ * Copyright (c) 2019-2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
-.word _ebss
+.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -97,15 +100,15 @@
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
- INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
@@ -123,8 +126,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +135,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +228,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/gcc/startup_stm32wb35xx_cm4.s b/Source/Templates/gcc/startup_stm32wb35xx_cm4.s
index 52cbc69..65ead5e 100644
--- a/Source/Templates/gcc/startup_stm32wb35xx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb35xx_cm4.s
@@ -14,7 +14,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2019-2021 STMicroelectronics.
+ * Copyright (c) 2019-2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -97,20 +100,20 @@
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
- INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
-
-.size Reset_Handler, .-Reset_Handler
+
+.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
@@ -123,8 +126,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +135,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +228,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/gcc/startup_stm32wb50xx_cm4.s b/Source/Templates/gcc/startup_stm32wb50xx_cm4.s
index 9430dfd..ccf0f19 100644
--- a/Source/Templates/gcc/startup_stm32wb50xx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb50xx_cm4.s
@@ -14,7 +14,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2019-2021 STMicroelectronics.
+ * Copyright (c) 2019-2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
-.word _ebss
+.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -97,6 +100,7 @@
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
@@ -105,12 +109,12 @@
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
-
-.size Reset_Handler, .-Reset_Handler
+
+.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
@@ -123,8 +127,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +136,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +229,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/gcc/startup_stm32wb55xx_cm4.s b/Source/Templates/gcc/startup_stm32wb55xx_cm4.s
index 77c2e05..d7f99ea 100644
--- a/Source/Templates/gcc/startup_stm32wb55xx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb55xx_cm4.s
@@ -14,7 +14,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2019-2021 STMicroelectronics.
+ * Copyright (c) 2019-2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
-.word _ebss
+.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -97,20 +100,20 @@
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
- INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
-.size Reset_Handler, .-Reset_Handler
+.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
@@ -123,8 +126,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +135,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +228,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/gcc/startup_stm32wb5mxx_cm4.s b/Source/Templates/gcc/startup_stm32wb5mxx_cm4.s
index 94be63d..68434a2 100644
--- a/Source/Templates/gcc/startup_stm32wb5mxx_cm4.s
+++ b/Source/Templates/gcc/startup_stm32wb5mxx_cm4.s
@@ -14,7 +14,7 @@
******************************************************************************
* @attention
*
- * Copyright (c) 2019-2021 STMicroelectronics.
+ * Copyright (c) 2019-2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@@ -25,24 +25,27 @@
*/
.syntax unified
- .cpu cortex-m4
- .fpu softvfp
- .thumb
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
-.global g_pfnVectors
-.global Default_Handler
+.global g_pfnVectors
+.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
-.word _sidata
+.word _sidata
/* start address for the .data section. defined in linker script */
-.word _sdata
+.word _sdata
/* end address for the .data section. defined in linker script */
-.word _edata
+.word _edata
/* start address for the .bss section. defined in linker script */
-.word _sbss
+.word _sbss
/* end address for the .bss section. defined in linker script */
-.word _ebss
+.word _ebss
+/* start address for the initialization values of the .MB_MEM2 section.
+defined in linker script */
+.word _siMB_MEM2
/* start address for the .MB_MEM2 section. defined in linker script */
.word _sMB_MEM2
/* end address for the .MB_MEM2 section. defined in linker script */
@@ -94,23 +97,23 @@
mov sp, r0 /* set stack pointer */
/* Call the clock system initialization function.*/
bl SystemInit
-
+
/* Copy the data segment initializers from flash to SRAM */
INIT_DATA _sdata, _edata, _sidata
+ INIT_DATA _sMB_MEM2, _eMB_MEM2, _siMB_MEM2
/* Zero fill the bss segments. */
INIT_BSS _sbss, _ebss
- INIT_BSS _sMB_MEM2, _eMB_MEM2
/* Call static constructors */
bl __libc_init_array
/* Call the application s entry point.*/
- bl main
+ bl main
LoopForever:
b LoopForever
-
-.size Reset_Handler, .-Reset_Handler
+
+.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
@@ -123,8 +126,8 @@
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
- b Infinite_Loop
- .size Default_Handler, .-Default_Handler
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
@@ -132,15 +135,15 @@
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
- .type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
- .word NMI_Handler
+ .word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
@@ -225,9 +228,9 @@
* this definition.
*
*******************************************************************************/
- .weak NMI_Handler
+ .weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
-
+
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
diff --git a/Source/Templates/system_stm32wbxx.c b/Source/Templates/system_stm32wbxx.c
index f3effb5..dc38e46 100644
--- a/Source/Templates/system_stm32wbxx.c
+++ b/Source/Templates/system_stm32wbxx.c
@@ -101,7 +101,11 @@
#endif /* LSI_VALUE */
#if !defined (LSE_VALUE)
-#define LSE_VALUE (32768UL) /*!< Value of LSE in Hz*/
+#if defined(STM32WB5Mxx)
+ #define LSE_VALUE 32774U /*!< Value of the LSE oscillator in Hz */
+#else
+ #define LSE_VALUE 32768U /*!< Value of the LSE oscillator in Hz */
+#endif /* STM32WB5Mxx */
#endif /* LSE_VALUE */
/**