Modified version of the mbed library for use with the Nucleo boards.

Dependents:   EEPROMWrite Full-Project

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Sep 04 08:45:09 2015 +0100
Revision:
618:484341a108bc
Parent:
120:3e3b6882f22a
Synchronized with git revision a412b49ac52f8002fb8f35dd143db771675e8d88

Full URL: https://github.com/mbedmicro/mbed/commit/a412b49ac52f8002fb8f35dd143db771675e8d88/

Fixed linker script for LPCXpresso for EA LPC11U35 QuickStart Board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 120:3e3b6882f22a 1 /* mbed - LPC11U35 linker script
mbed_official 120:3e3b6882f22a 2 * Based linker script generated by Code Red Technologies Red Suite 4.1
mbed_official 120:3e3b6882f22a 3 */
mbed_official 618:484341a108bc 4 GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
mbed_official 120:3e3b6882f22a 5
mbed_official 120:3e3b6882f22a 6 MEMORY
mbed_official 120:3e3b6882f22a 7 {
mbed_official 120:3e3b6882f22a 8 /* Define each memory region */
mbed_official 120:3e3b6882f22a 9 MFlash32 (rx) : ORIGIN = 0x0, LENGTH = 0x10000 /* 64k */
mbed_official 120:3e3b6882f22a 10 RamLoc8 (rwx) : ORIGIN = 0x100000C0, LENGTH = 0x1F40 /* 8k */
mbed_official 120:3e3b6882f22a 11 RamUsb2 (rwx) : ORIGIN = 0x20004000, LENGTH = 0x800 /* 2k */
mbed_official 120:3e3b6882f22a 12 }
mbed_official 120:3e3b6882f22a 13 /* Define a symbol for the top of each memory region */
mbed_official 120:3e3b6882f22a 14 __top_MFlash32 = 0x0 + 0x10000;
mbed_official 120:3e3b6882f22a 15 __top_RamLoc8 = 0x10000000 + 0x1F40;
mbed_official 120:3e3b6882f22a 16 __top_RamUsb2 = 0x20004000 + 0x800;
mbed_official 120:3e3b6882f22a 17
mbed_official 120:3e3b6882f22a 18 ENTRY(ResetISR)
mbed_official 120:3e3b6882f22a 19
mbed_official 120:3e3b6882f22a 20 SECTIONS
mbed_official 120:3e3b6882f22a 21 {
mbed_official 120:3e3b6882f22a 22
mbed_official 120:3e3b6882f22a 23 /* MAIN TEXT SECTION */
mbed_official 120:3e3b6882f22a 24 .text : ALIGN(4)
mbed_official 120:3e3b6882f22a 25 {
mbed_official 120:3e3b6882f22a 26 FILL(0xff)
mbed_official 120:3e3b6882f22a 27 KEEP(*(.isr_vector))
mbed_official 120:3e3b6882f22a 28 *(.text.ResetISR)
mbed_official 120:3e3b6882f22a 29 . = 0x200;
mbed_official 120:3e3b6882f22a 30
mbed_official 120:3e3b6882f22a 31 /* Global Section Table */
mbed_official 120:3e3b6882f22a 32 . = ALIGN(4) ;
mbed_official 120:3e3b6882f22a 33 __section_table_start = .;
mbed_official 120:3e3b6882f22a 34 __data_section_table = .;
mbed_official 120:3e3b6882f22a 35 LONG(LOADADDR(.data));
mbed_official 120:3e3b6882f22a 36 LONG( ADDR(.data)) ;
mbed_official 120:3e3b6882f22a 37 LONG( SIZEOF(.data));
mbed_official 120:3e3b6882f22a 38 LONG(LOADADDR(.data_RAM2));
mbed_official 120:3e3b6882f22a 39 LONG( ADDR(.data_RAM2)) ;
mbed_official 120:3e3b6882f22a 40 LONG( SIZEOF(.data_RAM2));
mbed_official 120:3e3b6882f22a 41 __data_section_table_end = .;
mbed_official 120:3e3b6882f22a 42 __bss_section_table = .;
mbed_official 120:3e3b6882f22a 43 LONG( ADDR(.bss));
mbed_official 120:3e3b6882f22a 44 LONG( SIZEOF(.bss));
mbed_official 120:3e3b6882f22a 45 LONG( ADDR(.bss_RAM2));
mbed_official 120:3e3b6882f22a 46 LONG( SIZEOF(.bss_RAM2));
mbed_official 120:3e3b6882f22a 47 __bss_section_table_end = .;
mbed_official 120:3e3b6882f22a 48 __section_table_end = . ;
mbed_official 120:3e3b6882f22a 49 /* End of Global Section Table */
mbed_official 120:3e3b6882f22a 50
mbed_official 120:3e3b6882f22a 51
mbed_official 120:3e3b6882f22a 52 *(.after_vectors*)
mbed_official 120:3e3b6882f22a 53
mbed_official 120:3e3b6882f22a 54 *(.text*)
mbed_official 120:3e3b6882f22a 55 *(.rodata .rodata.*)
mbed_official 120:3e3b6882f22a 56 . = ALIGN(4);
mbed_official 120:3e3b6882f22a 57
mbed_official 120:3e3b6882f22a 58 /* C++ constructors etc */
mbed_official 120:3e3b6882f22a 59 . = ALIGN(4);
mbed_official 120:3e3b6882f22a 60 KEEP(*(.init))
mbed_official 120:3e3b6882f22a 61
mbed_official 120:3e3b6882f22a 62 . = ALIGN(4);
mbed_official 120:3e3b6882f22a 63 __preinit_array_start = .;
mbed_official 120:3e3b6882f22a 64 KEEP (*(.preinit_array))
mbed_official 120:3e3b6882f22a 65 __preinit_array_end = .;
mbed_official 120:3e3b6882f22a 66
mbed_official 120:3e3b6882f22a 67 . = ALIGN(4);
mbed_official 120:3e3b6882f22a 68 __init_array_start = .;
mbed_official 120:3e3b6882f22a 69 KEEP (*(SORT(.init_array.*)))
mbed_official 120:3e3b6882f22a 70 KEEP (*(.init_array))
mbed_official 120:3e3b6882f22a 71 __init_array_end = .;
mbed_official 120:3e3b6882f22a 72
mbed_official 120:3e3b6882f22a 73 KEEP(*(.fini));
mbed_official 120:3e3b6882f22a 74
mbed_official 120:3e3b6882f22a 75 . = ALIGN(0x4);
mbed_official 120:3e3b6882f22a 76 KEEP (*crtbegin.o(.ctors))
mbed_official 120:3e3b6882f22a 77 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
mbed_official 120:3e3b6882f22a 78 KEEP (*(SORT(.ctors.*)))
mbed_official 120:3e3b6882f22a 79 KEEP (*crtend.o(.ctors))
mbed_official 120:3e3b6882f22a 80
mbed_official 120:3e3b6882f22a 81 . = ALIGN(0x4);
mbed_official 120:3e3b6882f22a 82 KEEP (*crtbegin.o(.dtors))
mbed_official 120:3e3b6882f22a 83 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
mbed_official 120:3e3b6882f22a 84 KEEP (*(SORT(.dtors.*)))
mbed_official 120:3e3b6882f22a 85 KEEP (*crtend.o(.dtors))
mbed_official 120:3e3b6882f22a 86 /* End C++ */
mbed_official 120:3e3b6882f22a 87 } > MFlash32
mbed_official 120:3e3b6882f22a 88
mbed_official 120:3e3b6882f22a 89 /*
mbed_official 120:3e3b6882f22a 90 * for exception handling/unwind - some Newlib functions (in common
mbed_official 120:3e3b6882f22a 91 * with C++ and STDC++) use this.
mbed_official 120:3e3b6882f22a 92 */
mbed_official 120:3e3b6882f22a 93 .ARM.extab : ALIGN(4)
mbed_official 120:3e3b6882f22a 94 {
mbed_official 120:3e3b6882f22a 95 *(.ARM.extab* .gnu.linkonce.armextab.*)
mbed_official 120:3e3b6882f22a 96 } > MFlash32
mbed_official 120:3e3b6882f22a 97 __exidx_start = .;
mbed_official 120:3e3b6882f22a 98
mbed_official 120:3e3b6882f22a 99 .ARM.exidx : ALIGN(4)
mbed_official 120:3e3b6882f22a 100 {
mbed_official 120:3e3b6882f22a 101 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
mbed_official 120:3e3b6882f22a 102 } > MFlash32
mbed_official 120:3e3b6882f22a 103 __exidx_end = .;
mbed_official 120:3e3b6882f22a 104
mbed_official 120:3e3b6882f22a 105 _etext = .;
mbed_official 120:3e3b6882f22a 106
mbed_official 120:3e3b6882f22a 107
mbed_official 120:3e3b6882f22a 108 .data_RAM2 : ALIGN(4)
mbed_official 120:3e3b6882f22a 109 {
mbed_official 120:3e3b6882f22a 110 FILL(0xff)
mbed_official 120:3e3b6882f22a 111 *(.data.$RAM2*)
mbed_official 120:3e3b6882f22a 112 *(.data.$RamUsb2*)
mbed_official 120:3e3b6882f22a 113 . = ALIGN(4) ;
mbed_official 120:3e3b6882f22a 114 } > RamUsb2 AT>MFlash32
mbed_official 120:3e3b6882f22a 115
mbed_official 120:3e3b6882f22a 116 /* MAIN DATA SECTION */
mbed_official 120:3e3b6882f22a 117
mbed_official 120:3e3b6882f22a 118 .uninit_RESERVED : ALIGN(4)
mbed_official 120:3e3b6882f22a 119 {
mbed_official 120:3e3b6882f22a 120 KEEP(*(.bss.$RESERVED*))
mbed_official 120:3e3b6882f22a 121 } > RamLoc8
mbed_official 120:3e3b6882f22a 122
mbed_official 120:3e3b6882f22a 123 .data : ALIGN(4)
mbed_official 120:3e3b6882f22a 124 {
mbed_official 120:3e3b6882f22a 125 FILL(0xff)
mbed_official 120:3e3b6882f22a 126 _data = .;
mbed_official 120:3e3b6882f22a 127 *(vtable)
mbed_official 120:3e3b6882f22a 128 *(.data*)
mbed_official 120:3e3b6882f22a 129 . = ALIGN(4) ;
mbed_official 120:3e3b6882f22a 130 _edata = .;
mbed_official 120:3e3b6882f22a 131 } > RamLoc8 AT>MFlash32
mbed_official 120:3e3b6882f22a 132
mbed_official 120:3e3b6882f22a 133
mbed_official 120:3e3b6882f22a 134 .bss_RAM2 : ALIGN(4)
mbed_official 120:3e3b6882f22a 135 {
mbed_official 120:3e3b6882f22a 136 *(.bss.$RAM2*)
mbed_official 120:3e3b6882f22a 137 *(.bss.$RamUsb2*)
mbed_official 120:3e3b6882f22a 138 . = ALIGN(4) ;
mbed_official 120:3e3b6882f22a 139 } > RamUsb2
mbed_official 120:3e3b6882f22a 140
mbed_official 120:3e3b6882f22a 141 /* MAIN BSS SECTION */
mbed_official 120:3e3b6882f22a 142 .bss : ALIGN(4)
mbed_official 120:3e3b6882f22a 143 {
mbed_official 120:3e3b6882f22a 144 _bss = .;
mbed_official 120:3e3b6882f22a 145 *(.bss*)
mbed_official 120:3e3b6882f22a 146 *(COMMON)
mbed_official 120:3e3b6882f22a 147 . = ALIGN(4) ;
mbed_official 120:3e3b6882f22a 148 _ebss = .;
mbed_official 120:3e3b6882f22a 149 PROVIDE(end = .);
mbed_official 120:3e3b6882f22a 150 __end__ = .;
mbed_official 120:3e3b6882f22a 151 } > RamLoc8
mbed_official 120:3e3b6882f22a 152
mbed_official 120:3e3b6882f22a 153 PROVIDE(_pvHeapStart = .);
mbed_official 120:3e3b6882f22a 154 PROVIDE(_vStackTop = __top_RamLoc8 - 0);
mbed_official 120:3e3b6882f22a 155 }