The official mbed C/C SDK provides the software platform and libraries to build your applications.

Fork of mbed by mbed official

Committer:
Kojto
Date:
Tue Feb 03 15:31:20 2015 +0000
Revision:
93:e188a91d3eaa
Release 93 of the mbed library

Main changes:

- Renesas RZ_A1H bugfixes - i2c, ticker
- new targets - Nucleo F303RE, Nucleo F070RB, BLE SMURFS,
Dragonfly 411RE,
- BusXXX - is connected method, plus operators addition
- LPC8xx - I2c fixes
- timestamp_t reverted to uint32_t
- RTX - fixes regarding stack (alignment, magic word)

Who changed what in which revision?

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