]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_MPU_M33F_NXP_LPC55S69_MCUXpresso/Projects/MCUXpresso/Secure/FreeRTOSDemo_s.ld
commit 9f316c246baafa15c542a5aea81a94f26e3d6507
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M33F_NXP_LPC55S69_MCUXpresso / Projects / MCUXpresso / Secure / FreeRTOSDemo_s.ld
index 91959cca8a74876160c65eef6c42219182012e5f..899b266ca52286c18693b31f80f04ed8142f1fac 100644 (file)
@@ -9,7 +9,7 @@ MEMORY
 {\r
     /* Define each memory region. */\r
     PROGRAM_FLASH (rx)  : ORIGIN = 0x10000000, LENGTH = 0xfe00 /* 63.5K bytes (alias Flash). */\r
-    veneer_table (rx)   : ORIGIN = 0x1000fe00, LENGTH = 0x200  /* 0.5K bytes (alias Flash2). */\r
+    SG_veneer_table (rx): ORIGIN = 0x1000fe00, LENGTH = 0x200  /* 0.5K bytes (alias Flash2). */\r
     Ram0 (rwx)          : ORIGIN = 0x30000000, LENGTH = 0x8000 /* 32K bytes (alias RAM). */\r
 }\r
 \r
@@ -19,9 +19,9 @@ __base_Flash            = 0x10000000;           /* Flash. */
 __top_PROGRAM_FLASH     = 0x10000000 + 0xfe00;  /* 63.5K bytes */\r
 __top_Flash             = 0x10000000 + 0xfe00;  /* 63.5K bytes */\r
 \r
-__base_veneer_table     = 0x1000fe00;           /* veneer_table. */\r
+__base_SG_veneer_table  = 0x1000fe00;           /* SG_veneer_table. */\r
 __base_Flash2           = 0x1000fe00;           /* Flash2. */\r
-__top_veneer_table      = 0x1000fe00 + 0x200;   /* 0.5K bytes. */\r
+__top_SG_veneer_table   = 0x1000fe00 + 0x200;   /* 0.5K bytes. */\r
 __top_Flash2            = 0x1000fe00 + 0x200;   /* 0.5K bytes. */\r
 \r
 __base_Ram0             = 0x30000000;           /* Ram0. */\r
@@ -34,17 +34,34 @@ ENTRY(ResetISR)
 \r
 SECTIONS\r
 {\r
+    /* Place TrustZone Secure Gateway Stubs Section in SG_veneer_table'\r
+     * (Non-Secure Callable) memory. */\r
+    .gnu.sgstubs : ALIGN (32)\r
+    {\r
+        . = ALIGN(32);\r
+        _start_sg = .;\r
+        *(.gnu.sgstubs*)\r
+        . = ALIGN(32);\r
+        _end_sg = .;\r
+    } > SG_veneer_table\r
+\r
     /* Veneer Table Section (Non-Secure Callable). */\r
     .text_Flash2 : ALIGN(4)\r
     {\r
         FILL(0xff)\r
-        *(.text_Flash2*) /* For compatibility with previous releases. */\r
-        *(.text_veneer_table*) /* For compatibility with previous releases. */\r
-        *(.text.$Flash2*)\r
-        *(.text.$veneer_table*)\r
-        *(.rodata.$Flash2*)\r
-        *(.rodata.$veneer_table*)\r
-    } > veneer_table\r
+        *(.text_Flash2)             /* For compatibility with previous releases. */\r
+        *(.text_SG_veneer_table)    /* For compatibility with previous releases. */\r
+        *(.text.$Flash2)\r
+        *(.text.$SG_veneer_table)\r
+        *(.text_Flash2.*)           /* For compatibility with previous releases. */\r
+        *(.text_SG_veneer_table.*)  /* For compatibility with previous releases. */\r
+        *(.text.$Flash2.*)\r
+        *(.text.$SG_veneer_table.*)\r
+        *(.rodata.$Flash2)\r
+        *(.rodata.$SG_veneer_table)\r
+        *(.rodata.$Flash2.*)\r
+        *(.rodata.$SG_veneer_table.*)\r
+    } > SG_veneer_table\r
 \r
     /* Vector Table Section. */\r
     .text : ALIGN(4)\r
@@ -89,21 +106,11 @@ SECTIONS
         *(.ARM.extab* .gnu.linkonce.armextab.*)\r
     } > PROGRAM_FLASH\r
 \r
-    __exidx_start = .;\r
     .ARM.exidx : ALIGN(4)\r
     {\r
+        __exidx_start = .;\r
         *(.ARM.exidx* .gnu.linkonce.armexidx.*)\r
-    } > PROGRAM_FLASH\r
-    __exidx_end = .;\r
-\r
-    /* TrustZone Secure Gateway Stubs Section. */\r
-    .gnu.sgstubs : ALIGN (32)\r
-    {\r
-        . = ALIGN(32);\r
-        _start_sg = .;\r
-        *(.gnu.sgstubs*)\r
-        . = ALIGN(32);\r
-        _end_sg = .;\r
+        __exidx_end = .;\r
     } > PROGRAM_FLASH\r
 \r
     /* Text Section End. */\r
@@ -112,42 +119,55 @@ SECTIONS
     /* Uninit Reserved Section. */\r
     .uninit_RESERVED : ALIGN(4)\r
     {\r
+        _start_uninit_RESERVED = .;\r
         KEEP(*(.bss.$RESERVED*))\r
         . = ALIGN(4);\r
         _end_uninit_RESERVED = .;\r
-    } > Ram0\r
+    } > Ram0 AT>Ram0\r
 \r
     /* Main Data section (Ram0). */\r
     .data : ALIGN(4)\r
     {\r
         FILL(0xff)\r
         _data = .;\r
+        PROVIDE(__start_data_RAM = .);\r
+        PROVIDE(__start_data_Ram0 = .);\r
         *(vtable)\r
         *(.ramfunc*)\r
         *(.data*)\r
         . = ALIGN(4);\r
         _edata = .;\r
+        PROVIDE(__end_data_RAM = .);\r
+        PROVIDE(__end_data_Ram0 = .);\r
     } > Ram0 AT>PROGRAM_FLASH\r
 \r
     /* Main BSS Section. */\r
     .bss : ALIGN(4)\r
     {\r
         _bss = .;\r
+        PROVIDE(__start_bss_RAM = .);\r
+        PROVIDE(__start_bss_Ram0 = .);\r
         *(.bss*)\r
         *(COMMON)\r
         . = ALIGN(4);\r
         _ebss = .;\r
+        PROVIDE(__end_bss_RAM = .);\r
+        PROVIDE(__end_bss_Ram0 = .);\r
         PROVIDE(end = .);\r
-    } > Ram0\r
+    } > Ram0 AT>Ram0\r
 \r
     /* Default Noinit Section. */\r
     .noinit (NOLOAD) : ALIGN(4)\r
     {\r
         _noinit = .;\r
+        PROVIDE(__start_noinit_RAM = .);\r
+        PROVIDE(__start_noinit_Ram0 = .);\r
         *(.noinit*)\r
         . = ALIGN(4);\r
         _end_noinit = .;\r
-    } > Ram0\r
+        PROVIDE(__end_noinit_RAM = .);\r
+        PROVIDE(__end_noinit_Ram0 = .);\r
+    } > Ram0 AT>Ram0\r
 \r
     /* Reserve space and place heap in memory map. */\r
     _HeapSize = 0x800;\r