| 
96 | 96 | }  | 
97 | 97 | 
 
  | 
98 | 98 | /* Library configurations */  | 
99 |  | -GROUP(libgcc.a libc.a libm.a libnosys.a)  | 
 | 99 | +GROUP(libc.a libm.a libnosys.a)  | 
100 | 100 | 
 
  | 
101 | 101 | /* Linker script to place sections and symbol values. Should be used together  | 
102 | 102 |  * with other linker script that defines memory regions FLASH and RAM.  | 
@@ -181,6 +181,26 @@ SECTIONS  | 
181 | 181 |         KEEP(*(.init))  | 
182 | 182 |         KEEP(*(.fini))  | 
183 | 183 | 
 
  | 
 | 184 | +        /* section information for finsh shell */  | 
 | 185 | +        . = ALIGN(4);  | 
 | 186 | +        __fsymtab_start = .;  | 
 | 187 | +        KEEP(*(FSymTab))  | 
 | 188 | +        __fsymtab_end = .;  | 
 | 189 | + | 
 | 190 | +        . = ALIGN(4);  | 
 | 191 | +        __vsymtab_start = .;  | 
 | 192 | +        KEEP(*(VSymTab))  | 
 | 193 | +        __vsymtab_end = .;  | 
 | 194 | + | 
 | 195 | +        /* section information for initial. */  | 
 | 196 | +        . = ALIGN(4);  | 
 | 197 | +        __rt_init_start = .;  | 
 | 198 | +        KEEP(*(SORT(.rti_fn*)))  | 
 | 199 | +        __rt_init_end = .;  | 
 | 200 | + | 
 | 201 | +        . = ALIGN(4);  | 
 | 202 | +        KEEP(*(FalPartTable))  | 
 | 203 | + | 
184 | 204 |         /* .ctors */  | 
185 | 205 |         *crtbegin.o(.ctors)  | 
186 | 206 |         *crtbegin?.o(.ctors)  | 
@@ -213,6 +233,14 @@ SECTIONS  | 
213 | 233 | 
 
  | 
214 | 234 |         KEEP(*(.eh_frame*))  | 
215 | 235 | 
 
  | 
 | 236 | +        /* new GCC version uses .init_array */  | 
 | 237 | +        PROVIDE(__ctors_start__ = .);  | 
 | 238 | +        KEEP (*(SORT(.init_array.*)))  | 
 | 239 | +        KEEP (*(.init_array))  | 
 | 240 | +        PROVIDE(__ctors_end__ = .);  | 
 | 241 | + | 
 | 242 | +        . = ALIGN(4);  | 
 | 243 | + | 
216 | 244 |         __ROM_End = .;  | 
217 | 245 |     } > FLASH = 0xFF  | 
218 | 246 | 
 
  | 
@@ -566,6 +594,19 @@ SECTIONS  | 
566 | 594 |         __noinit_end = .;  | 
567 | 595 |     } > RAM  | 
568 | 596 | 
 
  | 
 | 597 | +    . = .;  | 
 | 598 | +    __nocache_pre_location = .;  | 
 | 599 | +    .nocache ALIGN(32) (NOLOAD):  | 
 | 600 | +    {  | 
 | 601 | +        __nocache_start = .;  | 
 | 602 | + | 
 | 603 | +        KEEP(*(.nocache))  | 
 | 604 | + | 
 | 605 | +        . = ALIGN(32);  | 
 | 606 | +        __nocache_end = .;  | 
 | 607 | +    } > RAM  | 
 | 608 | +    . = (SIZEOF(.nocache) > 0) ? __nocache_end : __nocache_pre_location;  | 
 | 609 | + | 
569 | 610 |     .bss :  | 
570 | 611 |     {  | 
571 | 612 |         . = ALIGN(4);  | 
@@ -649,6 +690,19 @@ SECTIONS  | 
649 | 690 |         __SDRAM_End = .;  | 
650 | 691 |     } > SDRAM  | 
651 | 692 | 
 
  | 
 | 693 | +    . = .;  | 
 | 694 | +    __nocache_sdram_pre_location = .;  | 
 | 695 | +    .nocache_sdram ALIGN(32) (NOLOAD):  | 
 | 696 | +    {  | 
 | 697 | +        __nocache_sdram_start = .;  | 
 | 698 | + | 
 | 699 | +        KEEP(*(.nocache_sdram))  | 
 | 700 | + | 
 | 701 | +        . = ALIGN(32);  | 
 | 702 | +        __nocache_sdram_end = .;  | 
 | 703 | +    } > SDRAM  | 
 | 704 | +    . = (SIZEOF(.nocache_sdram) > 0) ? __nocache_sdram_end : __nocache_sdram_pre_location;  | 
 | 705 | + | 
652 | 706 |     /* Note: There are no secure/non-secure boundaries for SDRAM.  These symbols are provided for the RA configuration tool. */  | 
653 | 707 |     __tz_SDRAM_N = __SDRAM_End;  | 
654 | 708 | 
 
  | 
 | 
0 commit comments