mbed library sources modified for open wear

Dependents:   openwear-lifelogger-example

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Tue Jul 15 07:45:08 2014 +0100
Revision:
256:76fd9a263045
Parent:
20:4263a77256ae
Synchronized with git revision 2031512f69c228e1d13ea89c39409db813af949f

Full URL: https://github.com/mbedmicro/mbed/commit/2031512f69c228e1d13ea89c39409db813af949f/

[LPC4330] Updated LPC4330_M4 port

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 256:76fd9a263045 1 /* mbed - LPC4330_M4 linker script
mbed_official 256:76fd9a263045 2 * Based linker script generated by Code Red Technologies Red Suite 7.0
mbed_official 256:76fd9a263045 3 */
mbed_official 256:76fd9a263045 4 GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
bogdanm 20:4263a77256ae 5
bogdanm 20:4263a77256ae 6 MEMORY
bogdanm 20:4263a77256ae 7 {
bogdanm 20:4263a77256ae 8 /* Define each memory region */
mbed_official 256:76fd9a263045 9 RamLoc128 (rwx) : ORIGIN = 0x10000118, LENGTH = 0x1FEE8 /* 128K bytes */
mbed_official 256:76fd9a263045 10 RamLoc72 (rwx) : ORIGIN = 0x10080000, LENGTH = 0x12000 /* 72K bytes */
mbed_official 256:76fd9a263045 11 RamAHB32 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32K bytes */
mbed_official 256:76fd9a263045 12 RamAHB16 (rwx) : ORIGIN = 0x20008000, LENGTH = 0x4000 /* 16K bytes */
mbed_official 256:76fd9a263045 13 RamAHB_ETB16 (rwx) : ORIGIN = 0x2000c000, LENGTH = 0x4000 /* 16K bytes */
mbed_official 256:76fd9a263045 14 SPIFI (rx) : ORIGIN = 0x14000000, LENGTH = 0x400000 /* 4M bytes */
mbed_official 256:76fd9a263045 15
bogdanm 20:4263a77256ae 16
bogdanm 20:4263a77256ae 17 }
mbed_official 256:76fd9a263045 18 /* Define a symbol for the top of each memory region */
mbed_official 256:76fd9a263045 19 __top_RamLoc128 = 0x10000000 + 0x20000;
mbed_official 256:76fd9a263045 20 __top_RamLoc72 = 0x10080000 + 0x12000;
mbed_official 256:76fd9a263045 21 __top_RamAHB32 = 0x20000000 + 0x8000;
mbed_official 256:76fd9a263045 22 __top_RamAHB16 = 0x20008000 + 0x4000;
mbed_official 256:76fd9a263045 23 __top_RamAHB_ETB16 = 0x2000c000 + 0x4000;
mbed_official 256:76fd9a263045 24 __top_SPIFI = 0x14000000 + 0x400000;
bogdanm 20:4263a77256ae 25
mbed_official 256:76fd9a263045 26 ENTRY(ResetISR)
mbed_official 256:76fd9a263045 27
mbed_official 256:76fd9a263045 28 SECTIONS
mbed_official 256:76fd9a263045 29 {
mbed_official 256:76fd9a263045 30
mbed_official 256:76fd9a263045 31 /* MAIN TEXT SECTION */
mbed_official 256:76fd9a263045 32 .text : ALIGN(4)
mbed_official 256:76fd9a263045 33 {
mbed_official 256:76fd9a263045 34 FILL(0xff)
mbed_official 256:76fd9a263045 35 __vectors_start__ = ABSOLUTE(.) ;
mbed_official 256:76fd9a263045 36 KEEP(*(.isr_vector))
mbed_official 256:76fd9a263045 37
mbed_official 256:76fd9a263045 38 /* Global Section Table */
mbed_official 256:76fd9a263045 39 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 40 __section_table_start = .;
mbed_official 256:76fd9a263045 41 __data_section_table = .;
mbed_official 256:76fd9a263045 42 LONG(LOADADDR(.data));
mbed_official 256:76fd9a263045 43 LONG( ADDR(.data));
mbed_official 256:76fd9a263045 44 LONG( SIZEOF(.data));
mbed_official 256:76fd9a263045 45 LONG(LOADADDR(.data_RAM2));
mbed_official 256:76fd9a263045 46 LONG( ADDR(.data_RAM2));
mbed_official 256:76fd9a263045 47 LONG( SIZEOF(.data_RAM2));
mbed_official 256:76fd9a263045 48 LONG(LOADADDR(.data_RAM3));
mbed_official 256:76fd9a263045 49 LONG( ADDR(.data_RAM3));
mbed_official 256:76fd9a263045 50 LONG( SIZEOF(.data_RAM3));
mbed_official 256:76fd9a263045 51 LONG(LOADADDR(.data_RAM4));
mbed_official 256:76fd9a263045 52 LONG( ADDR(.data_RAM4));
mbed_official 256:76fd9a263045 53 LONG( SIZEOF(.data_RAM4));
mbed_official 256:76fd9a263045 54 LONG(LOADADDR(.data_RAM5));
mbed_official 256:76fd9a263045 55 LONG( ADDR(.data_RAM5));
mbed_official 256:76fd9a263045 56 LONG( SIZEOF(.data_RAM5));
mbed_official 256:76fd9a263045 57 __data_section_table_end = .;
mbed_official 256:76fd9a263045 58 __bss_section_table = .;
mbed_official 256:76fd9a263045 59 LONG( ADDR(.bss));
mbed_official 256:76fd9a263045 60 LONG( SIZEOF(.bss));
mbed_official 256:76fd9a263045 61 LONG( ADDR(.bss_RAM2));
mbed_official 256:76fd9a263045 62 LONG( SIZEOF(.bss_RAM2));
mbed_official 256:76fd9a263045 63 LONG( ADDR(.bss_RAM3));
mbed_official 256:76fd9a263045 64 LONG( SIZEOF(.bss_RAM3));
mbed_official 256:76fd9a263045 65 LONG( ADDR(.bss_RAM4));
mbed_official 256:76fd9a263045 66 LONG( SIZEOF(.bss_RAM4));
mbed_official 256:76fd9a263045 67 LONG( ADDR(.bss_RAM5));
mbed_official 256:76fd9a263045 68 LONG( SIZEOF(.bss_RAM5));
mbed_official 256:76fd9a263045 69 __bss_section_table_end = .;
mbed_official 256:76fd9a263045 70 __section_table_end = . ;
mbed_official 256:76fd9a263045 71 /* End of Global Section Table */
mbed_official 256:76fd9a263045 72
mbed_official 256:76fd9a263045 73
mbed_official 256:76fd9a263045 74 *(.after_vectors*)
mbed_official 256:76fd9a263045 75
mbed_official 256:76fd9a263045 76 } >SPIFI
mbed_official 256:76fd9a263045 77
mbed_official 256:76fd9a263045 78 .text : ALIGN(4)
mbed_official 256:76fd9a263045 79 {
mbed_official 256:76fd9a263045 80 *(.text*)
mbed_official 256:76fd9a263045 81 *(.rodata .rodata.* .constdata .constdata.*)
mbed_official 256:76fd9a263045 82 . = ALIGN(4);
mbed_official 256:76fd9a263045 83
mbed_official 256:76fd9a263045 84 /* C++ constructors etc */
mbed_official 256:76fd9a263045 85 . = ALIGN(4);
mbed_official 256:76fd9a263045 86 KEEP(*(.init))
mbed_official 256:76fd9a263045 87
mbed_official 256:76fd9a263045 88 . = ALIGN(4);
mbed_official 256:76fd9a263045 89 __preinit_array_start = .;
mbed_official 256:76fd9a263045 90 KEEP (*(.preinit_array))
mbed_official 256:76fd9a263045 91 __preinit_array_end = .;
mbed_official 256:76fd9a263045 92
mbed_official 256:76fd9a263045 93 . = ALIGN(4);
mbed_official 256:76fd9a263045 94 __init_array_start = .;
mbed_official 256:76fd9a263045 95 KEEP (*(SORT(.init_array.*)))
mbed_official 256:76fd9a263045 96 KEEP (*(.init_array))
mbed_official 256:76fd9a263045 97 __init_array_end = .;
mbed_official 256:76fd9a263045 98
mbed_official 256:76fd9a263045 99 KEEP(*(.fini));
mbed_official 256:76fd9a263045 100
mbed_official 256:76fd9a263045 101 . = ALIGN(4);
mbed_official 256:76fd9a263045 102 KEEP (*crtbegin.o(.ctors))
mbed_official 256:76fd9a263045 103 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
mbed_official 256:76fd9a263045 104 KEEP (*(SORT(.ctors.*)))
mbed_official 256:76fd9a263045 105 KEEP (*crtend.o(.ctors))
mbed_official 256:76fd9a263045 106
mbed_official 256:76fd9a263045 107 . = ALIGN(4);
mbed_official 256:76fd9a263045 108 KEEP (*crtbegin.o(.dtors))
mbed_official 256:76fd9a263045 109 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
mbed_official 256:76fd9a263045 110 KEEP (*(SORT(.dtors.*)))
mbed_official 256:76fd9a263045 111 KEEP (*crtend.o(.dtors))
mbed_official 256:76fd9a263045 112 /* End C++ */
mbed_official 256:76fd9a263045 113 } > SPIFI
bogdanm 20:4263a77256ae 114
mbed_official 256:76fd9a263045 115 /*
mbed_official 256:76fd9a263045 116 * for exception handling/unwind - some Newlib functions (in common
mbed_official 256:76fd9a263045 117 * with C++ and STDC++) use this.
mbed_official 256:76fd9a263045 118 */
mbed_official 256:76fd9a263045 119 .ARM.extab : ALIGN(4)
mbed_official 256:76fd9a263045 120 {
mbed_official 256:76fd9a263045 121 *(.ARM.extab* .gnu.linkonce.armextab.*)
mbed_official 256:76fd9a263045 122 } > SPIFI
mbed_official 256:76fd9a263045 123 __exidx_start = .;
mbed_official 256:76fd9a263045 124
mbed_official 256:76fd9a263045 125 .ARM.exidx : ALIGN(4)
mbed_official 256:76fd9a263045 126 {
mbed_official 256:76fd9a263045 127 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
mbed_official 256:76fd9a263045 128 } > SPIFI
mbed_official 256:76fd9a263045 129 __exidx_end = .;
mbed_official 256:76fd9a263045 130
mbed_official 256:76fd9a263045 131 _etext = .;
mbed_official 256:76fd9a263045 132
mbed_official 256:76fd9a263045 133
mbed_official 256:76fd9a263045 134 /* DATA section for RamLoc72 */
mbed_official 256:76fd9a263045 135 .data_RAM2 : ALIGN(4)
mbed_official 256:76fd9a263045 136 {
mbed_official 256:76fd9a263045 137 FILL(0xff)
mbed_official 256:76fd9a263045 138 *(.ramfunc.$RAM2)
mbed_official 256:76fd9a263045 139 *(.ramfunc.$RamLoc72)
mbed_official 256:76fd9a263045 140 *(.data.$RAM2*)
mbed_official 256:76fd9a263045 141 *(.data.$RamLoc72*)
mbed_official 256:76fd9a263045 142 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 143 } > RamLoc72 AT>SPIFI
mbed_official 256:76fd9a263045 144
mbed_official 256:76fd9a263045 145 /* DATA section for RamAHB32 */
mbed_official 256:76fd9a263045 146 .data_RAM3 : ALIGN(4)
mbed_official 256:76fd9a263045 147 {
mbed_official 256:76fd9a263045 148 FILL(0xff)
mbed_official 256:76fd9a263045 149 *(.ramfunc.$RAM3)
mbed_official 256:76fd9a263045 150 *(.ramfunc.$RamAHB32)
mbed_official 256:76fd9a263045 151 *(.data.$RAM3*)
mbed_official 256:76fd9a263045 152 *(.data.$RamAHB32*)
mbed_official 256:76fd9a263045 153 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 154 } > RamAHB32 AT>SPIFI
mbed_official 256:76fd9a263045 155
mbed_official 256:76fd9a263045 156 /* DATA section for RamAHB16 */
mbed_official 256:76fd9a263045 157 .data_RAM4 : ALIGN(4)
mbed_official 256:76fd9a263045 158 {
mbed_official 256:76fd9a263045 159 FILL(0xff)
mbed_official 256:76fd9a263045 160 *(.ramfunc.$RAM4)
mbed_official 256:76fd9a263045 161 *(.ramfunc.$RamAHB16)
mbed_official 256:76fd9a263045 162 *(.data.$RAM4*)
mbed_official 256:76fd9a263045 163 *(.data.$RamAHB16*)
mbed_official 256:76fd9a263045 164 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 165 } > RamAHB16 AT>SPIFI
mbed_official 256:76fd9a263045 166
mbed_official 256:76fd9a263045 167 /* DATA section for RamAHB_ETB16 */
mbed_official 256:76fd9a263045 168 .data_RAM5 : ALIGN(4)
mbed_official 256:76fd9a263045 169 {
mbed_official 256:76fd9a263045 170 FILL(0xff)
mbed_official 256:76fd9a263045 171 *(.ramfunc.$RAM5)
mbed_official 256:76fd9a263045 172 *(.ramfunc.$RamAHB_ETB16)
mbed_official 256:76fd9a263045 173 *(.data.$RAM5*)
mbed_official 256:76fd9a263045 174 *(.data.$RamAHB_ETB16*)
mbed_official 256:76fd9a263045 175 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 176 } > RamAHB_ETB16 AT>SPIFI
mbed_official 256:76fd9a263045 177
mbed_official 256:76fd9a263045 178 /* MAIN DATA SECTION */
mbed_official 256:76fd9a263045 179
mbed_official 256:76fd9a263045 180
mbed_official 256:76fd9a263045 181 .uninit_RESERVED : ALIGN(4)
mbed_official 256:76fd9a263045 182 {
mbed_official 256:76fd9a263045 183 KEEP(*(.bss.$RESERVED*))
mbed_official 256:76fd9a263045 184 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 185 _end_uninit_RESERVED = .;
mbed_official 256:76fd9a263045 186 } > RamLoc128
mbed_official 256:76fd9a263045 187
mbed_official 256:76fd9a263045 188
mbed_official 256:76fd9a263045 189 /* Main DATA section (RamLoc128) */
mbed_official 256:76fd9a263045 190 .data : ALIGN(4)
mbed_official 256:76fd9a263045 191 {
mbed_official 256:76fd9a263045 192 FILL(0xff)
mbed_official 256:76fd9a263045 193 _data = . ;
mbed_official 256:76fd9a263045 194 *(vtable)
mbed_official 256:76fd9a263045 195 *(.ramfunc*)
mbed_official 256:76fd9a263045 196 *(.data*)
mbed_official 256:76fd9a263045 197 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 198 _edata = . ;
mbed_official 256:76fd9a263045 199 } > RamLoc128 AT>SPIFI
mbed_official 256:76fd9a263045 200
mbed_official 256:76fd9a263045 201 /* BSS section for RamLoc72 */
mbed_official 256:76fd9a263045 202 .bss_RAM2 : ALIGN(4)
mbed_official 256:76fd9a263045 203 {
mbed_official 256:76fd9a263045 204 *(.bss.$RAM2*)
mbed_official 256:76fd9a263045 205 *(.bss.$RamLoc72*)
mbed_official 256:76fd9a263045 206 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 207 } > RamLoc72
mbed_official 256:76fd9a263045 208 /* BSS section for RamAHB32 */
mbed_official 256:76fd9a263045 209 .bss_RAM3 : ALIGN(4)
mbed_official 256:76fd9a263045 210 {
mbed_official 256:76fd9a263045 211 *(.bss.$RAM3*)
mbed_official 256:76fd9a263045 212 *(.bss.$RamAHB32*)
mbed_official 256:76fd9a263045 213 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 214 } > RamAHB32
mbed_official 256:76fd9a263045 215 /* BSS section for RamAHB16 */
mbed_official 256:76fd9a263045 216 .bss_RAM4 : ALIGN(4)
mbed_official 256:76fd9a263045 217 {
mbed_official 256:76fd9a263045 218 *(.bss.$RAM4*)
mbed_official 256:76fd9a263045 219 *(.bss.$RamAHB16*)
mbed_official 256:76fd9a263045 220 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 221 } > RamAHB16
mbed_official 256:76fd9a263045 222 /* BSS section for RamAHB_ETB16 */
mbed_official 256:76fd9a263045 223 .bss_RAM5 : ALIGN(4)
mbed_official 256:76fd9a263045 224 {
mbed_official 256:76fd9a263045 225 *(.bss.$RAM5*)
mbed_official 256:76fd9a263045 226 *(.bss.$RamAHB_ETB16*)
mbed_official 256:76fd9a263045 227 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 228 } > RamAHB_ETB16
mbed_official 256:76fd9a263045 229
mbed_official 256:76fd9a263045 230 /* MAIN BSS SECTION */
mbed_official 256:76fd9a263045 231 .bss : ALIGN(4)
mbed_official 256:76fd9a263045 232 {
mbed_official 256:76fd9a263045 233 _bss = .;
mbed_official 256:76fd9a263045 234 *(.bss*)
mbed_official 256:76fd9a263045 235 *(COMMON)
mbed_official 256:76fd9a263045 236 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 237 _ebss = .;
mbed_official 256:76fd9a263045 238 PROVIDE(end = .);
mbed_official 256:76fd9a263045 239 } > RamLoc128
mbed_official 256:76fd9a263045 240
mbed_official 256:76fd9a263045 241 /* NOINIT section for RamLoc72 */
mbed_official 256:76fd9a263045 242 .noinit_RAM2 (NOLOAD) : ALIGN(4)
mbed_official 256:76fd9a263045 243 {
mbed_official 256:76fd9a263045 244 *(.noinit.$RAM2*)
mbed_official 256:76fd9a263045 245 *(.noinit.$RamLoc72*)
mbed_official 256:76fd9a263045 246 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 247 } > RamLoc72
mbed_official 256:76fd9a263045 248 /* NOINIT section for RamAHB32 */
mbed_official 256:76fd9a263045 249 .noinit_RAM3 (NOLOAD) : ALIGN(4)
mbed_official 256:76fd9a263045 250 {
mbed_official 256:76fd9a263045 251 *(.noinit.$RAM3*)
mbed_official 256:76fd9a263045 252 *(.noinit.$RamAHB32*)
mbed_official 256:76fd9a263045 253 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 254 } > RamAHB32
mbed_official 256:76fd9a263045 255 /* NOINIT section for RamAHB16 */
mbed_official 256:76fd9a263045 256 .noinit_RAM4 (NOLOAD) : ALIGN(4)
mbed_official 256:76fd9a263045 257 {
mbed_official 256:76fd9a263045 258 *(.noinit.$RAM4*)
mbed_official 256:76fd9a263045 259 *(.noinit.$RamAHB16*)
mbed_official 256:76fd9a263045 260 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 261 } > RamAHB16
mbed_official 256:76fd9a263045 262 /* NOINIT section for RamAHB_ETB16 */
mbed_official 256:76fd9a263045 263 .noinit_RAM5 (NOLOAD) : ALIGN(4)
mbed_official 256:76fd9a263045 264 {
mbed_official 256:76fd9a263045 265 *(.noinit.$RAM5*)
mbed_official 256:76fd9a263045 266 *(.noinit.$RamAHB_ETB16*)
mbed_official 256:76fd9a263045 267 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 268 } > RamAHB_ETB16
mbed_official 256:76fd9a263045 269
mbed_official 256:76fd9a263045 270 /* DEFAULT NOINIT SECTION */
mbed_official 256:76fd9a263045 271 .noinit (NOLOAD): ALIGN(4)
mbed_official 256:76fd9a263045 272 {
mbed_official 256:76fd9a263045 273 _noinit = .;
mbed_official 256:76fd9a263045 274 *(.noinit*)
mbed_official 256:76fd9a263045 275 . = ALIGN(4) ;
mbed_official 256:76fd9a263045 276 _end_noinit = .;
mbed_official 256:76fd9a263045 277 } > RamLoc128
mbed_official 256:76fd9a263045 278
mbed_official 256:76fd9a263045 279 PROVIDE(_pvHeapStart = .);
mbed_official 256:76fd9a263045 280 PROVIDE(_vStackTop = __top_RamLoc128 - 0);
mbed_official 256:76fd9a263045 281 }