Release v1.0.6
diff --git a/Include/stm32l552xx.h b/Include/stm32l552xx.h index cddbae1..0f7b82a 100644 --- a/Include/stm32l552xx.h +++ b/Include/stm32l552xx.h
@@ -16066,7 +16066,7 @@ /****************** 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/Include/stm32l562xx.h b/Include/stm32l562xx.h index 4fbb2bc..03bc23f 100644 --- a/Include/stm32l562xx.h +++ b/Include/stm32l562xx.h
@@ -16805,7 +16805,7 @@ /****************** 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/Include/stm32l5xx.h b/Include/stm32l5xx.h index 05aa446..c558ff4 100644 --- a/Include/stm32l5xx.h +++ b/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/Release_Notes.html b/Release_Notes.html index 04c9169..78a8275 100644 --- a/Release_Notes.html +++ b/Release_Notes.html
@@ -43,18 +43,14 @@ <div class="col-sm-12 col-lg-8"> <h1 id="update-history">Update History</h1> <div class="collapse"> -<input type="checkbox" id="collapse-section6" checked aria-hidden="true"> <label for="collapse-section6" aria-hidden="true"><strong>V1.0.5 / 04-November-2022</strong></label> +<input type="checkbox" id="collapse-section7" checked aria-hidden="true"> <label for="collapse-section7" aria-hidden="true"><strong>V1.0.6 / 09-February-2024</strong></label> <div> <h2 id="main-changes">Main Changes</h2> <p><strong>Maintenance release</strong></p> <h2 id="contents">Contents</h2> <ul> -<li>General updates to fix known defects and implementation enhancements.</li> -<li>All source files: update disclaimer to add reference to the new license agreement.</li> -<li>Add new atomic register access macros in stm32l5xx.h file.</li> -<li>Update to fix compilation error “-Werror=undef” with ARMCC version.</li> -<li>Add missing parameter after <span class="citation" data-cites="param">@param</span> in order to fix warning in generated documentation</li> -<li>Change addresses of ROM symbols in <em><em>sram</em></em>.icf template files to code region alias in order to increase performance while running code from SRAM</li> +<li>Fix the location of .size directive in STM32CubeIDE’s startup code to allow proper size information of vector table.</li> +<li>Add the READONLY tag to sections containing lookup tables to avoid GCC12 linker warnings if a segment is marked RWX.</li> </ul> <h2 id="notes">Notes</h2> <p>Reminder:</p> @@ -76,18 +72,18 @@ </div> </div> <div class="collapse"> -<input type="checkbox" id="collapse-section5" aria-hidden="true"> <label for="collapse-section5" aria-hidden="true"><strong>V1.0.4 / 10-February-2021</strong></label> +<input type="checkbox" id="collapse-section6" aria-hidden="true"> <label for="collapse-section6" aria-hidden="true"><strong>V1.0.5 / 04-November-2022</strong></label> <div> <h2 id="main-changes-1">Main Changes</h2> <p><strong>Maintenance release</strong></p> <h2 id="contents-1">Contents</h2> -<p>Maintenance release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> <ul> -<li>stm32l552xx.h and stm32l562xx.h updates -<ul> -<li>Add TAMP_CFGR configuration register and definitions for TMONEN, VMONEN and WUTMONEN monitoring functions</li> -<li>Fix I2C4_EV_IRQn and I2C4_ER_IRQn order in IRQn_Type</li> -</ul></li> +<li>General updates to fix known defects and implementation enhancements.</li> +<li>All source files: update disclaimer to add reference to the new license agreement.</li> +<li>Add new atomic register access macros in stm32l5xx.h file.</li> +<li>Update to fix compilation error “-Werror=undef” with ARMCC version.</li> +<li>Add missing parameter after <span class="citation" data-cites="param">@param</span> in order to fix warning in generated documentation</li> +<li>Change addresses of ROM symbols in <em><em>sram</em></em>.icf template files to code region alias in order to increase performance while running code from SRAM</li> </ul> <h2 id="notes-1">Notes</h2> <p>Reminder:</p> @@ -109,25 +105,18 @@ </div> </div> <div class="collapse"> -<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true"><strong>V1.0.3 / 26-June-2020</strong></label> +<input type="checkbox" id="collapse-section5" aria-hidden="true"> <label for="collapse-section5" aria-hidden="true"><strong>V1.0.4 / 10-February-2021</strong></label> <div> <h2 id="main-changes-2">Main Changes</h2> -<p><strong>Fourth release</strong></p> +<p><strong>Maintenance release</strong></p> <h2 id="contents-2">Contents</h2> -<p>Fourth release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> +<p>Maintenance release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> <ul> <li>stm32l552xx.h and stm32l562xx.h updates <ul> -<li>Fix ICACHE_FCR_CERRF bit definition</li> -<li>Align DBGMCU_CR register and bits definitions with RM0438 revision 5</li> -<li>Cleanup RCC_CFGR_* definitions to keep only bits definitions</li> +<li>Add TAMP_CFGR configuration register and definitions for TMONEN, VMONEN and WUTMONEN monitoring functions</li> +<li>Fix I2C4_EV_IRQn and I2C4_ER_IRQn order in IRQn_Type</li> </ul></li> -<li>Templates\gcc\startup_stm32l552xx.s and startup_stm32l562xx.s -<ul> -<li>Call SystemInit() before RAM initialization in startup/Reset_Handler</li> -</ul></li> -<li>Add README.md and License.md files for GitHub publication</li> -<li>Misspelled words corrections in driver descriptions</li> </ul> <h2 id="notes-2">Notes</h2> <p>Reminder:</p> @@ -149,19 +138,25 @@ </div> </div> <div class="collapse"> -<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true"><strong>V1.0.2 / 12-February-2020</strong></label> +<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true"><strong>V1.0.3 / 26-June-2020</strong></label> <div> <h2 id="main-changes-3">Main Changes</h2> -<p><strong>Third release</strong></p> +<p><strong>Fourth release</strong></p> <h2 id="contents-3">Contents</h2> -<p>Third official release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> +<p>Fourth release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> <ul> <li>stm32l552xx.h and stm32l562xx.h updates <ul> -<li>Add root secure services library (RSSLIB) definitions</li> -<li>Add bootloader id address</li> -<li>Align DBGMCU_APB2FZR register and bits definitions with RM0438</li> +<li>Fix ICACHE_FCR_CERRF bit definition</li> +<li>Align DBGMCU_CR register and bits definitions with RM0438 revision 5</li> +<li>Cleanup RCC_CFGR_* definitions to keep only bits definitions</li> </ul></li> +<li>Templates\gcc\startup_stm32l552xx.s and startup_stm32l562xx.s +<ul> +<li>Call SystemInit() before RAM initialization in startup/Reset_Handler</li> +</ul></li> +<li>Add README.md and License.md files for GitHub publication</li> +<li>Misspelled words corrections in driver descriptions</li> </ul> <h2 id="notes-3">Notes</h2> <p>Reminder:</p> @@ -183,16 +178,18 @@ </div> </div> <div class="collapse"> -<input type="checkbox" id="collapse-section2" unchecked aria-hidden="true"> <label for="collapse-section2" aria-hidden="true"><strong>V1.0.1 / 22-January-2020</strong></label> +<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true"><strong>V1.0.2 / 12-February-2020</strong></label> <div> <h2 id="main-changes-4">Main Changes</h2> -<p><strong>Second release</strong></p> +<p><strong>Third release</strong></p> <h2 id="contents-4">Contents</h2> -<p>Second official release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> +<p>Third official release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> <ul> -<li>Templates system_stm32l5xx.c, system_stm32l5xx_s.c and system_stm32l5xx_ns.c +<li>stm32l552xx.h and stm32l562xx.h updates <ul> -<li>Add vector table relocation capability with conditional USER_VECT_TAB_ADDRESS</li> +<li>Add root secure services library (RSSLIB) definitions</li> +<li>Add bootloader id address</li> +<li>Align DBGMCU_APB2FZR register and bits definitions with RM0438</li> </ul></li> </ul> <h2 id="notes-4">Notes</h2> @@ -215,11 +212,43 @@ </div> </div> <div class="collapse"> -<input type="checkbox" id="collapse-section1" unchecked aria-hidden="true"> <label for="collapse-section1" aria-hidden="true"><strong>V1.0.0 / 13-December-2019</strong></label> +<input type="checkbox" id="collapse-section2" unchecked aria-hidden="true"> <label for="collapse-section2" aria-hidden="true"><strong>V1.0.1 / 22-January-2020</strong></label> <div> <h2 id="main-changes-5">Main Changes</h2> -<p><strong>First release</strong></p> +<p><strong>Second release</strong></p> <h2 id="contents-5">Contents</h2> +<p>Second official release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> +<ul> +<li>Templates system_stm32l5xx.c, system_stm32l5xx_s.c and system_stm32l5xx_ns.c +<ul> +<li>Add vector table relocation capability with conditional USER_VECT_TAB_ADDRESS</li> +</ul></li> +</ul> +<h2 id="notes-5">Notes</h2> +<p>Reminder:</p> +<ul> +<li>When TrustZone is enabled in the system (Flash option bit TZEN=1) +<ul> +<li>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).</li> +<li>default Security Attribute Unit (SAU) configuration in the partition_stm32l552xx.h and partition_stm32l562xx.h: +<ul> +<li>SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)</li> +<li>SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))</li> +<li>SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))</li> +<li>SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripheral mapped memory)</li> +<li>SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)</li> +<li>SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)</li> +</ul></li> +</ul></li> +</ul> +</div> +</div> +<div class="collapse"> +<input type="checkbox" id="collapse-section1" unchecked aria-hidden="true"> <label for="collapse-section1" aria-hidden="true"><strong>V1.0.0 / 13-December-2019</strong></label> +<div> +<h2 id="main-changes-6">Main Changes</h2> +<p><strong>First release</strong></p> +<h2 id="contents-6">Contents</h2> <p>First official release of STM32L5xx CMSIS Device drivers to support <strong>STM32L552xx and STM32L562xx</strong> devices</p> <ul> <li>Templates @@ -237,7 +266,7 @@ <li>Linker files for 256 and 512 Kbytes Flash device configurations</li> </ul></li> </ul> -<h2 id="notes-5">Notes</h2> +<h2 id="notes-6">Notes</h2> <p>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)</p> </div> </div>
diff --git a/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld b/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld index 14f979e..5e1a105 100644 --- a/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld +++ b/Source/Templates/gcc/linker/STM32L552xC_FLASH.ld
@@ -87,13 +87,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld b/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld index f738bc3..cfa7a52 100644 --- a/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld +++ b/Source/Templates/gcc/linker/STM32L552xC_FLASH_ns.ld
@@ -86,13 +86,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld b/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld index 68b970a..aa74934 100644 --- a/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld +++ b/Source/Templates/gcc/linker/STM32L552xC_FLASH_s.ld
@@ -88,13 +88,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld b/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld index 6b1c72a..08b73d3 100644 --- a/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld +++ b/Source/Templates/gcc/linker/STM32L552xE_FLASH.ld
@@ -87,13 +87,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld b/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld index 1ce84ba..b0f3558 100644 --- a/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld +++ b/Source/Templates/gcc/linker/STM32L552xE_FLASH_ns.ld
@@ -86,13 +86,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld b/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld index bdf219d..01b4c33 100644 --- a/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld +++ b/Source/Templates/gcc/linker/STM32L552xE_FLASH_s.ld
@@ -88,13 +88,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xx_RAM.ld b/Source/Templates/gcc/linker/STM32L552xx_RAM.ld index 48c0df3..1cafc79 100644 --- a/Source/Templates/gcc/linker/STM32L552xx_RAM.ld +++ b/Source/Templates/gcc/linker/STM32L552xx_RAM.ld
@@ -85,13 +85,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld b/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld index b34279a..b5c304a 100644 --- a/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld +++ b/Source/Templates/gcc/linker/STM32L552xx_RAM_ns.ld
@@ -84,13 +84,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld b/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld index 4661d17..c989563 100644 --- a/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld +++ b/Source/Templates/gcc/linker/STM32L552xx_RAM_s.ld
@@ -86,13 +86,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld b/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld index 6b1c72a..08b73d3 100644 --- a/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld +++ b/Source/Templates/gcc/linker/STM32L562xE_FLASH.ld
@@ -87,13 +87,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld b/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld index 1ce84ba..b0f3558 100644 --- a/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld +++ b/Source/Templates/gcc/linker/STM32L562xE_FLASH_ns.ld
@@ -86,13 +86,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld b/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld index bdf219d..01b4c33 100644 --- a/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld +++ b/Source/Templates/gcc/linker/STM32L562xE_FLASH_s.ld
@@ -88,13 +88,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L562xx_RAM.ld b/Source/Templates/gcc/linker/STM32L562xx_RAM.ld index 48c0df3..1cafc79 100644 --- a/Source/Templates/gcc/linker/STM32L562xx_RAM.ld +++ b/Source/Templates/gcc/linker/STM32L562xx_RAM.ld
@@ -85,13 +85,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld b/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld index b34279a..b5c304a 100644 --- a/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld +++ b/Source/Templates/gcc/linker/STM32L562xx_RAM_ns.ld
@@ -84,13 +84,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld b/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld index 4661d17..c989563 100644 --- a/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld +++ b/Source/Templates/gcc/linker/STM32L562xx_RAM_s.ld
@@ -86,13 +86,15 @@ . = 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 @@ . = 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 @@ . = 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 @@ . = 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/Source/Templates/gcc/startup_stm32l552xx.s b/Source/Templates/gcc/startup_stm32l552xx.s index 28d51aa..746658a 100644 --- a/Source/Templates/gcc/startup_stm32l552xx.s +++ b/Source/Templates/gcc/startup_stm32l552xx.s
@@ -124,7 +124,6 @@ ******************************************************************************/ .section .isr_vector,"a",%progbits .type g_pfnVectors, %object - .size g_pfnVectors, .-g_pfnVectors g_pfnVectors: @@ -254,6 +253,7 @@ .word ICACHE_IRQHandler .word 0 + .size g_pfnVectors, .-g_pfnVectors /******************************************************************************* *
diff --git a/Source/Templates/gcc/startup_stm32l562xx.s b/Source/Templates/gcc/startup_stm32l562xx.s index ed9591f..f3b5189 100644 --- a/Source/Templates/gcc/startup_stm32l562xx.s +++ b/Source/Templates/gcc/startup_stm32l562xx.s
@@ -124,7 +124,6 @@ ******************************************************************************/ .section .isr_vector,"a",%progbits .type g_pfnVectors, %object - .size g_pfnVectors, .-g_pfnVectors g_pfnVectors: @@ -254,6 +253,7 @@ .word ICACHE_IRQHandler .word OTFDEC1_IRQHandler + .size g_pfnVectors, .-g_pfnVectors /******************************************************************************* *