my fork

Dependents:   Nucleo_blueNRG

Fork of mbed by mbed official

Committer:
bogdanm
Date:
Wed Jul 02 13:22:23 2014 +0100
Revision:
86:04dd9b1680ae
Release 86 of the mbed library

Main changes:


- bug fixes in various backends
- mbed "error" replaced by assert logic (mbed_assert)
- new ST Nucleo targets

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 86:04dd9b1680ae 1 /*Based on following file*/
bogdanm 86:04dd9b1680ae 2 /*
bogdanm 86:04dd9b1680ae 3 * GENERATED FILE - DO NOT EDIT
bogdanm 86:04dd9b1680ae 4 * (c) Code Red Technologies Ltd, 2008-13
bogdanm 86:04dd9b1680ae 5 * (c) NXP Semiconductors 2013-2014
bogdanm 86:04dd9b1680ae 6 * Generated linker script file for LPC1549
bogdanm 86:04dd9b1680ae 7 * Created from generic_c.ld (LPCXpresso v7.2 (0 [Build 153] [2014-05-19] ))
bogdanm 86:04dd9b1680ae 8 * By LPCXpresso v7.2.0 [Build 153] [2014-05-19] on Tue Jun 10 00:20:53 JST 2014
bogdanm 86:04dd9b1680ae 9 */
bogdanm 86:04dd9b1680ae 10
bogdanm 86:04dd9b1680ae 11 GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
bogdanm 86:04dd9b1680ae 12
bogdanm 86:04dd9b1680ae 13 MEMORY
bogdanm 86:04dd9b1680ae 14 {
bogdanm 86:04dd9b1680ae 15 /* Define each memory region */
bogdanm 86:04dd9b1680ae 16 MFlash256 (rx) : ORIGIN = 0x0, LENGTH = 0x40000 /* 256K bytes */
bogdanm 86:04dd9b1680ae 17 Ram0_16 (rwx) : ORIGIN = 0x2000000+0x100, LENGTH = 0x4000-0x100 /* 16K bytes */
bogdanm 86:04dd9b1680ae 18 Ram1_16 (rwx) : ORIGIN = 0x2004000, LENGTH = 0x4000 /* 16K bytes */
bogdanm 86:04dd9b1680ae 19 Ram2_4 (rwx) : ORIGIN = 0x2008000, LENGTH = 0x1000 /* 4K bytes */
bogdanm 86:04dd9b1680ae 20
bogdanm 86:04dd9b1680ae 21 }
bogdanm 86:04dd9b1680ae 22 /* Define a symbol for the top of each memory region */
bogdanm 86:04dd9b1680ae 23 __top_MFlash256 = 0x0 + 0x40000;
bogdanm 86:04dd9b1680ae 24 __top_Ram0_16 = 0x2000000 + 0x4000;
bogdanm 86:04dd9b1680ae 25 __top_Ram1_16 = 0x2004000 + 0x4000;
bogdanm 86:04dd9b1680ae 26 __top_Ram2_4 = 0x2008000 + 0x1000;
bogdanm 86:04dd9b1680ae 27
bogdanm 86:04dd9b1680ae 28 ENTRY(ResetISR)
bogdanm 86:04dd9b1680ae 29
bogdanm 86:04dd9b1680ae 30 SECTIONS
bogdanm 86:04dd9b1680ae 31 {
bogdanm 86:04dd9b1680ae 32
bogdanm 86:04dd9b1680ae 33 /* MAIN TEXT SECTION */
bogdanm 86:04dd9b1680ae 34 .text : ALIGN(4)
bogdanm 86:04dd9b1680ae 35 {
bogdanm 86:04dd9b1680ae 36 FILL(0xff)
bogdanm 86:04dd9b1680ae 37 KEEP(*(.isr_vector))
bogdanm 86:04dd9b1680ae 38
bogdanm 86:04dd9b1680ae 39 /* Global Section Table */
bogdanm 86:04dd9b1680ae 40 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 41 __section_table_start = .;
bogdanm 86:04dd9b1680ae 42 __data_section_table = .;
bogdanm 86:04dd9b1680ae 43 LONG(LOADADDR(.data));
bogdanm 86:04dd9b1680ae 44 LONG( ADDR(.data));
bogdanm 86:04dd9b1680ae 45 LONG( SIZEOF(.data));
bogdanm 86:04dd9b1680ae 46 LONG(LOADADDR(.data_RAM2));
bogdanm 86:04dd9b1680ae 47 LONG( ADDR(.data_RAM2));
bogdanm 86:04dd9b1680ae 48 LONG( SIZEOF(.data_RAM2));
bogdanm 86:04dd9b1680ae 49 LONG(LOADADDR(.data_RAM3));
bogdanm 86:04dd9b1680ae 50 LONG( ADDR(.data_RAM3));
bogdanm 86:04dd9b1680ae 51 LONG( SIZEOF(.data_RAM3));
bogdanm 86:04dd9b1680ae 52 __data_section_table_end = .;
bogdanm 86:04dd9b1680ae 53 __bss_section_table = .;
bogdanm 86:04dd9b1680ae 54 LONG( ADDR(.bss));
bogdanm 86:04dd9b1680ae 55 LONG( SIZEOF(.bss));
bogdanm 86:04dd9b1680ae 56 LONG( ADDR(.bss_RAM2));
bogdanm 86:04dd9b1680ae 57 LONG( SIZEOF(.bss_RAM2));
bogdanm 86:04dd9b1680ae 58 LONG( ADDR(.bss_RAM3));
bogdanm 86:04dd9b1680ae 59 LONG( SIZEOF(.bss_RAM3));
bogdanm 86:04dd9b1680ae 60 __bss_section_table_end = .;
bogdanm 86:04dd9b1680ae 61 __section_table_end = . ;
bogdanm 86:04dd9b1680ae 62 /* End of Global Section Table */
bogdanm 86:04dd9b1680ae 63
bogdanm 86:04dd9b1680ae 64
bogdanm 86:04dd9b1680ae 65 *(.after_vectors*)
bogdanm 86:04dd9b1680ae 66
bogdanm 86:04dd9b1680ae 67 *(.text*)
bogdanm 86:04dd9b1680ae 68 *(.rodata .rodata.*)
bogdanm 86:04dd9b1680ae 69 . = ALIGN(4);
bogdanm 86:04dd9b1680ae 70
bogdanm 86:04dd9b1680ae 71 /* C++ constructors etc */
bogdanm 86:04dd9b1680ae 72 . = ALIGN(4);
bogdanm 86:04dd9b1680ae 73 KEEP(*(.init))
bogdanm 86:04dd9b1680ae 74
bogdanm 86:04dd9b1680ae 75 . = ALIGN(4);
bogdanm 86:04dd9b1680ae 76 __preinit_array_start = .;
bogdanm 86:04dd9b1680ae 77 KEEP (*(.preinit_array))
bogdanm 86:04dd9b1680ae 78 __preinit_array_end = .;
bogdanm 86:04dd9b1680ae 79
bogdanm 86:04dd9b1680ae 80 . = ALIGN(4);
bogdanm 86:04dd9b1680ae 81 __init_array_start = .;
bogdanm 86:04dd9b1680ae 82 KEEP (*(SORT(.init_array.*)))
bogdanm 86:04dd9b1680ae 83 KEEP (*(.init_array))
bogdanm 86:04dd9b1680ae 84 __init_array_end = .;
bogdanm 86:04dd9b1680ae 85
bogdanm 86:04dd9b1680ae 86 KEEP(*(.fini));
bogdanm 86:04dd9b1680ae 87
bogdanm 86:04dd9b1680ae 88 . = ALIGN(0x4);
bogdanm 86:04dd9b1680ae 89 KEEP (*crtbegin.o(.ctors))
bogdanm 86:04dd9b1680ae 90 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
bogdanm 86:04dd9b1680ae 91 KEEP (*(SORT(.ctors.*)))
bogdanm 86:04dd9b1680ae 92 KEEP (*crtend.o(.ctors))
bogdanm 86:04dd9b1680ae 93
bogdanm 86:04dd9b1680ae 94 . = ALIGN(0x4);
bogdanm 86:04dd9b1680ae 95 KEEP (*crtbegin.o(.dtors))
bogdanm 86:04dd9b1680ae 96 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
bogdanm 86:04dd9b1680ae 97 KEEP (*(SORT(.dtors.*)))
bogdanm 86:04dd9b1680ae 98 KEEP (*crtend.o(.dtors))
bogdanm 86:04dd9b1680ae 99 } > MFlash256
bogdanm 86:04dd9b1680ae 100
bogdanm 86:04dd9b1680ae 101 /*
bogdanm 86:04dd9b1680ae 102 * for exception handling/unwind - some Newlib functions (in common
bogdanm 86:04dd9b1680ae 103 * with C++ and STDC++) use this.
bogdanm 86:04dd9b1680ae 104 */
bogdanm 86:04dd9b1680ae 105 .ARM.extab : ALIGN(4)
bogdanm 86:04dd9b1680ae 106 {
bogdanm 86:04dd9b1680ae 107 *(.ARM.extab* .gnu.linkonce.armextab.*)
bogdanm 86:04dd9b1680ae 108 } > MFlash256
bogdanm 86:04dd9b1680ae 109 __exidx_start = .;
bogdanm 86:04dd9b1680ae 110
bogdanm 86:04dd9b1680ae 111 .ARM.exidx : ALIGN(4)
bogdanm 86:04dd9b1680ae 112 {
bogdanm 86:04dd9b1680ae 113 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
bogdanm 86:04dd9b1680ae 114 } > MFlash256
bogdanm 86:04dd9b1680ae 115 __exidx_end = .;
bogdanm 86:04dd9b1680ae 116
bogdanm 86:04dd9b1680ae 117 _etext = .;
bogdanm 86:04dd9b1680ae 118
bogdanm 86:04dd9b1680ae 119 /* DATA section for Ram1_16 */
bogdanm 86:04dd9b1680ae 120 .data_RAM2 : ALIGN(4)
bogdanm 86:04dd9b1680ae 121 {
bogdanm 86:04dd9b1680ae 122 FILL(0xff)
bogdanm 86:04dd9b1680ae 123 *(.ramfunc.$RAM2)
bogdanm 86:04dd9b1680ae 124 *(.ramfunc.$Ram1_16)
bogdanm 86:04dd9b1680ae 125 *(.data.$RAM2*)
bogdanm 86:04dd9b1680ae 126 *(.data.$Ram1_16*)
bogdanm 86:04dd9b1680ae 127 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 128 } > Ram1_16 AT>MFlash256
bogdanm 86:04dd9b1680ae 129
bogdanm 86:04dd9b1680ae 130 /* DATA section for Ram2_4 */
bogdanm 86:04dd9b1680ae 131 .data_RAM3 : ALIGN(4)
bogdanm 86:04dd9b1680ae 132 {
bogdanm 86:04dd9b1680ae 133 FILL(0xff)
bogdanm 86:04dd9b1680ae 134 *(.ramfunc.$RAM3)
bogdanm 86:04dd9b1680ae 135 *(.ramfunc.$Ram2_4)
bogdanm 86:04dd9b1680ae 136 *(.data.$RAM3*)
bogdanm 86:04dd9b1680ae 137 *(.data.$Ram2_4*)
bogdanm 86:04dd9b1680ae 138 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 139 } > Ram2_4 AT>MFlash256
bogdanm 86:04dd9b1680ae 140
bogdanm 86:04dd9b1680ae 141 /* MAIN DATA SECTION */
bogdanm 86:04dd9b1680ae 142 .uninit_RESERVED : ALIGN(4)
bogdanm 86:04dd9b1680ae 143 {
bogdanm 86:04dd9b1680ae 144 KEEP(*(.bss.$RESERVED*))
bogdanm 86:04dd9b1680ae 145 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 146 _end_uninit_RESERVED = .;
bogdanm 86:04dd9b1680ae 147 } > Ram0_16
bogdanm 86:04dd9b1680ae 148
bogdanm 86:04dd9b1680ae 149 /* Main DATA section (Ram0_16) */
bogdanm 86:04dd9b1680ae 150 .data : ALIGN(4)
bogdanm 86:04dd9b1680ae 151 {
bogdanm 86:04dd9b1680ae 152 FILL(0xff)
bogdanm 86:04dd9b1680ae 153 _data = . ;
bogdanm 86:04dd9b1680ae 154 *(vtable)
bogdanm 86:04dd9b1680ae 155 *(.ramfunc*)
bogdanm 86:04dd9b1680ae 156 *(.data*)
bogdanm 86:04dd9b1680ae 157 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 158 _edata = . ;
bogdanm 86:04dd9b1680ae 159 } > Ram0_16 AT>MFlash256
bogdanm 86:04dd9b1680ae 160
bogdanm 86:04dd9b1680ae 161 /* BSS section for Ram1_16 */
bogdanm 86:04dd9b1680ae 162 .bss_RAM2 : ALIGN(4)
bogdanm 86:04dd9b1680ae 163 {
bogdanm 86:04dd9b1680ae 164 *(.bss.$RAM2*)
bogdanm 86:04dd9b1680ae 165 *(.bss.$Ram1_16*)
bogdanm 86:04dd9b1680ae 166 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 167 } > Ram1_16
bogdanm 86:04dd9b1680ae 168 /* BSS section for Ram2_4 */
bogdanm 86:04dd9b1680ae 169 .bss_RAM3 : ALIGN(4)
bogdanm 86:04dd9b1680ae 170 {
bogdanm 86:04dd9b1680ae 171 *(.bss.$RAM3*)
bogdanm 86:04dd9b1680ae 172 *(.bss.$Ram2_4*)
bogdanm 86:04dd9b1680ae 173 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 174 } > Ram2_4
bogdanm 86:04dd9b1680ae 175
bogdanm 86:04dd9b1680ae 176 /* MAIN BSS SECTION */
bogdanm 86:04dd9b1680ae 177 .bss : ALIGN(4)
bogdanm 86:04dd9b1680ae 178 {
bogdanm 86:04dd9b1680ae 179 _bss = .;
bogdanm 86:04dd9b1680ae 180 *(.bss*)
bogdanm 86:04dd9b1680ae 181 *(COMMON)
bogdanm 86:04dd9b1680ae 182 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 183 _ebss = .;
bogdanm 86:04dd9b1680ae 184 PROVIDE(end = .);
bogdanm 86:04dd9b1680ae 185 __end__ = .;
bogdanm 86:04dd9b1680ae 186 } > Ram0_16
bogdanm 86:04dd9b1680ae 187
bogdanm 86:04dd9b1680ae 188 /* NOINIT section for Ram1_16 */
bogdanm 86:04dd9b1680ae 189 .noinit_RAM2 (NOLOAD) : ALIGN(4)
bogdanm 86:04dd9b1680ae 190 {
bogdanm 86:04dd9b1680ae 191 *(.noinit.$RAM2*)
bogdanm 86:04dd9b1680ae 192 *(.noinit.$Ram1_16*)
bogdanm 86:04dd9b1680ae 193 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 194 } > Ram1_16
bogdanm 86:04dd9b1680ae 195 /* NOINIT section for Ram2_4 */
bogdanm 86:04dd9b1680ae 196 .noinit_RAM3 (NOLOAD) : ALIGN(4)
bogdanm 86:04dd9b1680ae 197 {
bogdanm 86:04dd9b1680ae 198 *(.noinit.$RAM3*)
bogdanm 86:04dd9b1680ae 199 *(.noinit.$Ram2_4*)
bogdanm 86:04dd9b1680ae 200 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 201 } > Ram2_4
bogdanm 86:04dd9b1680ae 202
bogdanm 86:04dd9b1680ae 203 /* DEFAULT NOINIT SECTION */
bogdanm 86:04dd9b1680ae 204 .noinit (NOLOAD): ALIGN(4)
bogdanm 86:04dd9b1680ae 205 {
bogdanm 86:04dd9b1680ae 206 _noinit = .;
bogdanm 86:04dd9b1680ae 207 *(.noinit*)
bogdanm 86:04dd9b1680ae 208 . = ALIGN(4) ;
bogdanm 86:04dd9b1680ae 209 _end_noinit = .;
bogdanm 86:04dd9b1680ae 210 } > Ram0_16
bogdanm 86:04dd9b1680ae 211
bogdanm 86:04dd9b1680ae 212 PROVIDE(_pvHeapStart = .);
bogdanm 86:04dd9b1680ae 213 PROVIDE(_vStackTop = __top_Ram0_16 - 0);
bogdanm 86:04dd9b1680ae 214 }