diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h
index cddbae10c0..0f7b82a572 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l552xx.h
@@ -16066,7 +16066,7 @@ typedef struct
/****************** Bit definition for SYSCFG_CSLCKR register ***************/
#define SYSCFG_CSLCKR_LOCKSVTAIRCR_Pos (0U)
#define SYSCFG_CSLCKR_LOCKSVTAIRCR_Msk (0x1UL << SYSCFG_CSLCKR_LOCKSVTAIRCR_Pos)/*!< 0x00000001 */
-#define SYSCFG_CSLCKR_LOCKSVTAIRCR SYSCFG_CSLCKR_LOCKSVTAIRCR_Msk /*!< Disable changes to the secure vectror table address, handling of system faults */
+#define SYSCFG_CSLCKR_LOCKSVTAIRCR SYSCFG_CSLCKR_LOCKSVTAIRCR_Msk /*!< Disable changes to the secure vector table address, handling of system faults */
#define SYSCFG_CSLCKR_LOCKSMPU_Pos (1U)
#define SYSCFG_CSLCKR_LOCKSMPU_Msk (0x1UL << SYSCFG_CSLCKR_LOCKSMPU_Pos) /*!< 0x00000002 */
#define SYSCFG_CSLCKR_LOCKSMPU SYSCFG_CSLCKR_LOCKSMPU_Msk /*!< Disable changes to the secure MPU registers writes by SW or debug agent */
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l562xx.h b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l562xx.h
index 4fbb2bc811..03bc23f9ea 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l562xx.h
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l562xx.h
@@ -16805,7 +16805,7 @@ typedef struct
/****************** Bit definition for SYSCFG_CSLCKR register ***************/
#define SYSCFG_CSLCKR_LOCKSVTAIRCR_Pos (0U)
#define SYSCFG_CSLCKR_LOCKSVTAIRCR_Msk (0x1UL << SYSCFG_CSLCKR_LOCKSVTAIRCR_Pos)/*!< 0x00000001 */
-#define SYSCFG_CSLCKR_LOCKSVTAIRCR SYSCFG_CSLCKR_LOCKSVTAIRCR_Msk /*!< Disable changes to the secure vectror table address, handling of system faults */
+#define SYSCFG_CSLCKR_LOCKSVTAIRCR SYSCFG_CSLCKR_LOCKSVTAIRCR_Msk /*!< Disable changes to the secure vector table address, handling of system faults */
#define SYSCFG_CSLCKR_LOCKSMPU_Pos (1U)
#define SYSCFG_CSLCKR_LOCKSMPU_Msk (0x1UL << SYSCFG_CSLCKR_LOCKSMPU_Pos) /*!< 0x00000002 */
#define SYSCFG_CSLCKR_LOCKSMPU SYSCFG_CSLCKR_LOCKSMPU_Msk /*!< Disable changes to the secure MPU registers writes by SW or debug agent */
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l5xx.h b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l5xx.h
index 05aa446d20..c558ff45bb 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l5xx.h
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Include/stm32l5xx.h
@@ -78,7 +78,7 @@
*/
#define __STM32L5_CMSIS_VERSION_MAIN (0x01U) /*!< [31:24] main version */
#define __STM32L5_CMSIS_VERSION_SUB1 (0x00U) /*!< [23:16] sub1 version */
-#define __STM32L5_CMSIS_VERSION_SUB2 (0x05U) /*!< [15:8] sub2 version */
+#define __STM32L5_CMSIS_VERSION_SUB2 (0x06U) /*!< [15:8] sub2 version */
#define __STM32L5_CMSIS_VERSION_RC (0x00U) /*!< [7:0] release candidate */
#define __STM32L5_CMSIS_VERSION ((__STM32L5_CMSIS_VERSION_MAIN << 24U)\
|(__STM32L5_CMSIS_VERSION_SUB1 << 16U)\
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Release_Notes.html b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Release_Notes.html
index 04c9169e72..78a8275361 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Release_Notes.html
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Release_Notes.html
@@ -43,12 +43,41 @@
Purpose
Update History
-
+
Main Changes
Maintenance release
Contents
+
Fix the location of .size directive in STM32CubeIDE’s startup code to allow proper size information of vector table.
+
Add the READONLY tag to sections containing lookup tables to avoid GCC12 linker warnings if a segment is marked RWX.
+
+
Notes
+
Reminder:
+
+
When TrustZone is enabled in the system (Flash option bit TZEN=1)
+
+
template device partition_stm32l552xx.h or partition_stm32l562xx.h file must be copied and optionally updated in user application secure project to configure the system (SAU, interrupts, core).
+
default Security Attribute Unit (SAU) configuration in the partition_stm32l552xx.h and partition_stm32l562xx.h:
+
+
SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)
+
SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))
+
SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))
+
SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripheral mapped memory)
+
SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)
+
SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)
+
+
+
+
+
+
+
+
+
Main Changes
+
Maintenance release
+
Contents
+
General updates to fix known defects and implementation enhancements.
All source files: update disclaimer to add reference to the new license agreement.
Add new atomic register access macros in stm32l5xx.h file.
@@ -56,7 +85,7 @@
Contents
Add missing parameter after @param in order to fix warning in generated documentation
Change addresses of ROM symbols in sram.icf template files to code region alias in order to increase performance while running code from SRAM
-
Notes
+
Notes
Reminder:
When TrustZone is enabled in the system (Flash option bit TZEN=1)
@@ -78,9 +107,9 @@
Notes
-
Main Changes
+
Main Changes
Maintenance release
-
Contents
+
Contents
Maintenance release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices
stm32l552xx.h and stm32l562xx.h updates
@@ -89,7 +118,7 @@
Contents
Fix I2C4_EV_IRQn and I2C4_ER_IRQn order in IRQn_Type
-
Notes
+
Notes
Reminder:
When TrustZone is enabled in the system (Flash option bit TZEN=1)
@@ -111,9 +140,9 @@
Notes
-
Main Changes
+
Main Changes
Fourth release
-
Contents
+
Contents
Fourth release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices
stm32l552xx.h and stm32l562xx.h updates
@@ -129,7 +158,7 @@
Contents
Add README.md and License.md files for GitHub publication
Misspelled words corrections in driver descriptions
-
Notes
+
Notes
Reminder:
When TrustZone is enabled in the system (Flash option bit TZEN=1)
@@ -151,9 +180,9 @@
Notes
-
Main Changes
+
Main Changes
Third release
-
Contents
+
Contents
Third official release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices
stm32l552xx.h and stm32l562xx.h updates
@@ -163,7 +192,7 @@
Contents
Align DBGMCU_APB2FZR register and bits definitions with RM0438
-
Notes
+
Notes
Reminder:
When TrustZone is enabled in the system (Flash option bit TZEN=1)
@@ -185,9 +214,9 @@
Notes
-
Main Changes
+
Main Changes
Second release
-
Contents
+
Contents
Second official release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices
Templates system_stm32l5xx.c, system_stm32l5xx_s.c and system_stm32l5xx_ns.c
@@ -195,7 +224,7 @@
Contents
Add vector table relocation capability with conditional USER_VECT_TAB_ADDRESS
-
Notes
+
Notes
Reminder:
When TrustZone is enabled in the system (Flash option bit TZEN=1)
@@ -217,9 +246,9 @@
Notes
-
Main Changes
+
Main Changes
First release
-
Contents
+
Contents
First official release of STM32L5xx CMSIS Device drivers to support STM32L552xx and STM32L562xx devices
Templates
@@ -237,7 +266,7 @@
Contents
Linker files for 256 and 512 Kbytes Flash device configurations
-
Notes
+
Notes
When TrustZone is enabled in the system (Flash option bit TZEN=1), template device partition_stm32l552xx.h or partition_stm32l562xx.h file must be copied and optionally updated in user application secure project to configure the system (SAU, interrupts, core)
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld
index 1ec9e7e3ae..7ee9e3f596 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld
@@ -87,13 +87,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -101,7 +103,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -110,7 +112,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -120,7 +122,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld
index be0c7bf17a..c30c545df0 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld
@@ -86,13 +86,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -100,7 +102,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -109,7 +111,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -119,7 +121,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld
index 81997f6aac..612fa0e574 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld
@@ -88,13 +88,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -102,7 +104,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -111,7 +113,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -121,7 +123,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld
index 68e5b5cb81..722b908050 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld
@@ -87,13 +87,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -101,7 +103,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -110,7 +112,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -120,7 +122,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld
index 9960e338e0..da2358621a 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld
@@ -86,13 +86,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -100,7 +102,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -109,7 +111,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -119,7 +121,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld
index 082bb7fdca..cfcf621cd0 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld
@@ -88,13 +88,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -102,7 +104,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -111,7 +113,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -121,7 +123,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM.ld
index defba7c5b2..5af607c74a 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM.ld
@@ -85,13 +85,15 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >RAM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -99,7 +101,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -108,7 +110,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -118,7 +120,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld
index cbac7c2a7c..276b34037c 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld
@@ -84,13 +84,15 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >RAM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -98,7 +100,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -107,7 +109,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -117,7 +119,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld
index a456d2f3b2..012a04c913 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld
@@ -86,13 +86,15 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >RAM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -100,7 +102,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -109,7 +111,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -119,7 +121,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld
index 68e5b5cb81..722b908050 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld
@@ -87,13 +87,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -101,7 +103,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -110,7 +112,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -120,7 +122,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld
index 9960e338e0..da2358621a 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld
@@ -86,13 +86,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -100,7 +102,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -109,7 +111,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -119,7 +121,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld
index 082bb7fdca..cfcf621cd0 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld
@@ -88,13 +88,15 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >ROM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -102,7 +104,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -111,7 +113,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -121,7 +123,7 @@ SECTIONS
. = ALIGN(8);
} >ROM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM.ld
index defba7c5b2..5af607c74a 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM.ld
@@ -85,13 +85,15 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >RAM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -99,7 +101,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -108,7 +110,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -118,7 +120,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld
index cbac7c2a7c..276b34037c 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld
@@ -84,13 +84,15 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >RAM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -98,7 +100,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -107,7 +109,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -117,7 +119,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld
index a456d2f3b2..012a04c913 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld
@@ -86,13 +86,15 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .ARM.extab : {
+ .ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(8);
} >RAM
- .ARM : {
+ .ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
+ {
. = ALIGN(8);
__exidx_start = .;
*(.ARM.exidx*)
@@ -100,7 +102,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .preinit_array :
+ .preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__preinit_array_start = .);
@@ -109,7 +111,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .init_array :
+ .init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__init_array_start = .);
@@ -119,7 +121,7 @@ SECTIONS
. = ALIGN(8);
} >RAM
- .fini_array :
+ .fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
{
. = ALIGN(8);
PROVIDE_HIDDEN (__fini_array_start = .);
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l552xx.s b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l552xx.s
index b89c8de2bd..e595eef79f 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l552xx.s
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l552xx.s
@@ -124,7 +124,6 @@ Infinite_Loop:
******************************************************************************/
.section .isr_vector,"a",%progbits
.type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
@@ -254,6 +253,7 @@ g_pfnVectors:
.word ICACHE_IRQHandler
.word 0
+ .size g_pfnVectors, .-g_pfnVectors
/*******************************************************************************
*
diff --git a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l562xx.s b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l562xx.s
index df4b621912..1c6e35a626 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l562xx.s
+++ b/system/Drivers/CMSIS/Device/ST/STM32L5xx/Source/Templates/gcc/startup_stm32l562xx.s
@@ -124,7 +124,6 @@ Infinite_Loop:
******************************************************************************/
.section .isr_vector,"a",%progbits
.type g_pfnVectors, %object
- .size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
@@ -254,6 +253,7 @@ g_pfnVectors:
.word ICACHE_IRQHandler
.word OTFDEC1_IRQHandler
+ .size g_pfnVectors, .-g_pfnVectors
/*******************************************************************************
*
diff --git a/system/Drivers/CMSIS/Device/ST/STM32YYxx_CMSIS_version.md b/system/Drivers/CMSIS/Device/ST/STM32YYxx_CMSIS_version.md
index 8b5055d8db..13fff7038b 100644
--- a/system/Drivers/CMSIS/Device/ST/STM32YYxx_CMSIS_version.md
+++ b/system/Drivers/CMSIS/Device/ST/STM32YYxx_CMSIS_version.md
@@ -14,7 +14,7 @@
* STM32L0: 1.9.3
* STM32L1: 2.3.3
* STM32L4: 1.7.3
- * STM32L5: 1.0.5
+ * STM32L5: 1.0.6
* STM32MP1: 1.6.0
* STM32U5: 1.3.1
* STM32WB: 1.12.0