fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Committer:
nameless129
Date:
Mon May 16 16:50:30 2016 +0000
Revision:
129:2e517c56bcfb
Parent:
0:9b334a45a8ff
PWM Fix:Duty 0%??H???????????????

Who changed what in which revision?

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