This repo contains the libraries of Mbed for LPC1549 with following changes: - IAP commands. - EEPROM write and read. - UART write and read (public) - CAN can_s -> LPC_C_CAN0_Type *can

Committer:
gmatarrubia
Date:
Tue Apr 14 15:00:13 2015 +0200
Revision:
0:820a69dfd200
Initial repo. IAP commands, EEPROM write/read, UART write/read, CAN

Who changed what in which revision?

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