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 &amp; 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 &amp; 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 */
 
 /**