aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios-contrib/os/common/startup/MSP430X/compilers/GCC/ld/msp430fr6989.ld
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios-contrib/os/common/startup/MSP430X/compilers/GCC/ld/msp430fr6989.ld')
-rw-r--r--lib/chibios-contrib/os/common/startup/MSP430X/compilers/GCC/ld/msp430fr6989.ld437
1 files changed, 437 insertions, 0 deletions
diff --git a/lib/chibios-contrib/os/common/startup/MSP430X/compilers/GCC/ld/msp430fr6989.ld b/lib/chibios-contrib/os/common/startup/MSP430X/compilers/GCC/ld/msp430fr6989.ld
new file mode 100644
index 000000000..06bacfecd
--- /dev/null
+++ b/lib/chibios-contrib/os/common/startup/MSP430X/compilers/GCC/ld/msp430fr6989.ld
@@ -0,0 +1,437 @@
1/* This file supports MSP430FR6989 devices. */
2/* Version: 1.188 */
3/* ChibiOS linker script, for normal executables */
4
5OUTPUT_ARCH(msp430)
6ENTRY(_start)
7
8MEMORY {
9 TINYRAM : ORIGIN = 0x0006, LENGTH = 0x001A
10 BSL : ORIGIN = 0x1000, LENGTH = 0x0800
11 RAM : ORIGIN = 0x1C00, LENGTH = 0x0800 /* END=0x23FF, size 2048 */
12 INFOMEM : ORIGIN = 0x1800, LENGTH = 0x0200 /* END=0x19FF, size 512 as 4 128-byte segments */
13 INFOA : ORIGIN = 0x1980, LENGTH = 0x0080 /* END=0x19FF, size 128 */
14 INFOB : ORIGIN = 0x1900, LENGTH = 0x0080 /* END=0x197F, size 128 */
15 INFOC : ORIGIN = 0x1880, LENGTH = 0x0080 /* END=0x18FF, size 128 */
16 INFOD : ORIGIN = 0x1800, LENGTH = 0x0080 /* END=0x187F, size 128 */
17 FRAM (rxw) : ORIGIN = 0x4400, LENGTH = 0xBB80 /* END=0xFF7F, size 48000 */
18 HIFRAM (rxw) : ORIGIN = 0x00010000, LENGTH = 0x00013FFF
19 VECT1 : ORIGIN = 0xFF90, LENGTH = 0x0002
20 VECT2 : ORIGIN = 0xFF92, LENGTH = 0x0002
21 VECT3 : ORIGIN = 0xFF94, LENGTH = 0x0002
22 VECT4 : ORIGIN = 0xFF96, LENGTH = 0x0002
23 VECT5 : ORIGIN = 0xFF98, LENGTH = 0x0002
24 VECT6 : ORIGIN = 0xFF9A, LENGTH = 0x0002
25 VECT7 : ORIGIN = 0xFF9C, LENGTH = 0x0002
26 VECT8 : ORIGIN = 0xFF9E, LENGTH = 0x0002
27 VECT9 : ORIGIN = 0xFFA0, LENGTH = 0x0002
28 VECT10 : ORIGIN = 0xFFA2, LENGTH = 0x0002
29 VECT11 : ORIGIN = 0xFFA4, LENGTH = 0x0002
30 VECT12 : ORIGIN = 0xFFA6, LENGTH = 0x0002
31 VECT13 : ORIGIN = 0xFFA8, LENGTH = 0x0002
32 VECT14 : ORIGIN = 0xFFAA, LENGTH = 0x0002
33 VECT15 : ORIGIN = 0xFFAC, LENGTH = 0x0002
34 VECT16 : ORIGIN = 0xFFAE, LENGTH = 0x0002
35 VECT17 : ORIGIN = 0xFFB0, LENGTH = 0x0002
36 VECT18 : ORIGIN = 0xFFB2, LENGTH = 0x0002
37 VECT19 : ORIGIN = 0xFFB4, LENGTH = 0x0002
38 VECT20 : ORIGIN = 0xFFB6, LENGTH = 0x0002
39 VECT21 : ORIGIN = 0xFFB8, LENGTH = 0x0002
40 VECT22 : ORIGIN = 0xFFBA, LENGTH = 0x0002
41 VECT23 : ORIGIN = 0xFFBC, LENGTH = 0x0002
42 VECT24 : ORIGIN = 0xFFBE, LENGTH = 0x0002
43 VECT25 : ORIGIN = 0xFFC0, LENGTH = 0x0002
44 VECT26 : ORIGIN = 0xFFC2, LENGTH = 0x0002
45 VECT27 : ORIGIN = 0xFFC4, LENGTH = 0x0002
46 VECT28 : ORIGIN = 0xFFC6, LENGTH = 0x0002
47 VECT29 : ORIGIN = 0xFFC8, LENGTH = 0x0002
48 VECT30 : ORIGIN = 0xFFCA, LENGTH = 0x0002
49 VECT31 : ORIGIN = 0xFFCC, LENGTH = 0x0002
50 VECT32 : ORIGIN = 0xFFCE, LENGTH = 0x0002
51 VECT33 : ORIGIN = 0xFFD0, LENGTH = 0x0002
52 VECT34 : ORIGIN = 0xFFD2, LENGTH = 0x0002
53 VECT35 : ORIGIN = 0xFFD4, LENGTH = 0x0002
54 VECT36 : ORIGIN = 0xFFD6, LENGTH = 0x0002
55 VECT37 : ORIGIN = 0xFFD8, LENGTH = 0x0002
56 VECT38 : ORIGIN = 0xFFDA, LENGTH = 0x0002
57 VECT39 : ORIGIN = 0xFFDC, LENGTH = 0x0002
58 VECT40 : ORIGIN = 0xFFDE, LENGTH = 0x0002
59 VECT41 : ORIGIN = 0xFFE0, LENGTH = 0x0002
60 VECT42 : ORIGIN = 0xFFE2, LENGTH = 0x0002
61 VECT43 : ORIGIN = 0xFFE4, LENGTH = 0x0002
62 VECT44 : ORIGIN = 0xFFE6, LENGTH = 0x0002
63 VECT45 : ORIGIN = 0xFFE8, LENGTH = 0x0002
64 VECT46 : ORIGIN = 0xFFEA, LENGTH = 0x0002
65 VECT47 : ORIGIN = 0xFFEC, LENGTH = 0x0002
66 VECT48 : ORIGIN = 0xFFEE, LENGTH = 0x0002
67 VECT49 : ORIGIN = 0xFFF0, LENGTH = 0x0002
68 VECT50 : ORIGIN = 0xFFF2, LENGTH = 0x0002
69 VECT51 : ORIGIN = 0xFFF4, LENGTH = 0x0002
70 VECT52 : ORIGIN = 0xFFF6, LENGTH = 0x0002
71 VECT53 : ORIGIN = 0xFFF8, LENGTH = 0x0002
72 VECT54 : ORIGIN = 0xFFFA, LENGTH = 0x0002
73 VECT55 : ORIGIN = 0xFFFC, LENGTH = 0x0002
74 RESETVEC : ORIGIN = 0xFFFE, LENGTH = 0x0002
75}
76
77PHDRS {
78 vectors PT_LOAD ;
79 stack PT_LOAD ;
80 rodata PT_LOAD ;
81 data PT_LOAD ;
82 text PT_LOAD ;
83 upper_rodata PT_LOAD ;
84 upper_data PT_LOAD ;
85 upper_text PT_LOAD ;
86}
87
88SECTIONS
89{
90 __interrupt_vector_1 : { KEEP (*(__interrupt_vector_1 )) } > VECT1 :vectors
91 __interrupt_vector_2 : { KEEP (*(__interrupt_vector_2 )) } > VECT2
92 __interrupt_vector_3 : { KEEP (*(__interrupt_vector_3 )) } > VECT3
93 __interrupt_vector_4 : { KEEP (*(__interrupt_vector_4 )) } > VECT4
94 __interrupt_vector_5 : { KEEP (*(__interrupt_vector_5 )) } > VECT5
95 __interrupt_vector_6 : { KEEP (*(__interrupt_vector_6 )) } > VECT6
96 __interrupt_vector_7 : { KEEP (*(__interrupt_vector_7 )) } > VECT7
97 __interrupt_vector_8 : { KEEP (*(__interrupt_vector_8 )) } > VECT8
98 __interrupt_vector_9 : { KEEP (*(__interrupt_vector_9 )) } > VECT9
99 __interrupt_vector_10 : { KEEP (*(__interrupt_vector_10)) } > VECT10
100 __interrupt_vector_11 : { KEEP (*(__interrupt_vector_11)) } > VECT11
101 __interrupt_vector_12 : { KEEP (*(__interrupt_vector_12)) } > VECT12
102 __interrupt_vector_13 : { KEEP (*(__interrupt_vector_13)) } > VECT13
103 __interrupt_vector_14 : { KEEP (*(__interrupt_vector_14)) } > VECT14
104 __interrupt_vector_15 : { KEEP (*(__interrupt_vector_15)) } > VECT15
105 __interrupt_vector_16 : { KEEP (*(__interrupt_vector_16)) } > VECT16
106 __interrupt_vector_17 : { KEEP (*(__interrupt_vector_17)) } > VECT17
107 __interrupt_vector_18 : { KEEP (*(__interrupt_vector_18)) } > VECT18
108 __interrupt_vector_19 : { KEEP (*(__interrupt_vector_19)) } > VECT19
109 __interrupt_vector_20 : { KEEP (*(__interrupt_vector_20)) } > VECT20
110 __interrupt_vector_21 : { KEEP (*(__interrupt_vector_21)) } > VECT21
111 __interrupt_vector_22 : { KEEP (*(__interrupt_vector_22)) } > VECT22
112 __interrupt_vector_23 : { KEEP (*(__interrupt_vector_23)) } > VECT23
113 __interrupt_vector_24 : { KEEP (*(__interrupt_vector_24)) } > VECT24
114 __interrupt_vector_25 : { KEEP (*(__interrupt_vector_25)) } > VECT25
115 __interrupt_vector_26 : { KEEP (*(__interrupt_vector_26)) } > VECT26
116 __interrupt_vector_27 : { KEEP (*(__interrupt_vector_27)) } > VECT27
117 __interrupt_vector_28 : { KEEP (*(__interrupt_vector_28)) KEEP (*(__interrupt_vector_aes256)) } > VECT28
118 __interrupt_vector_29 : { KEEP (*(__interrupt_vector_29)) KEEP (*(__interrupt_vector_rtc)) } > VECT29
119 __interrupt_vector_30 : { KEEP (*(__interrupt_vector_30)) KEEP (*(__interrupt_vector_lcd_c)) } > VECT30
120 __interrupt_vector_31 : { KEEP (*(__interrupt_vector_31)) KEEP (*(__interrupt_vector_port4)) } > VECT31
121 __interrupt_vector_32 : { KEEP (*(__interrupt_vector_32)) KEEP (*(__interrupt_vector_port3)) } > VECT32
122 __interrupt_vector_33 : { KEEP (*(__interrupt_vector_33)) KEEP (*(__interrupt_vector_timer3_a1)) } > VECT33
123 __interrupt_vector_34 : { KEEP (*(__interrupt_vector_34)) KEEP (*(__interrupt_vector_timer3_a0)) } > VECT34
124 __interrupt_vector_35 : { KEEP (*(__interrupt_vector_35)) KEEP (*(__interrupt_vector_port2)) } > VECT35
125 __interrupt_vector_36 : { KEEP (*(__interrupt_vector_36)) KEEP (*(__interrupt_vector_timer2_a1)) } > VECT36
126 __interrupt_vector_37 : { KEEP (*(__interrupt_vector_37)) KEEP (*(__interrupt_vector_timer2_a0)) } > VECT37
127 __interrupt_vector_38 : { KEEP (*(__interrupt_vector_38)) KEEP (*(__interrupt_vector_port1)) } > VECT38
128 __interrupt_vector_39 : { KEEP (*(__interrupt_vector_39)) KEEP (*(__interrupt_vector_timer1_a1)) } > VECT39
129 __interrupt_vector_40 : { KEEP (*(__interrupt_vector_40)) KEEP (*(__interrupt_vector_timer1_a0)) } > VECT40
130 __interrupt_vector_41 : { KEEP (*(__interrupt_vector_41)) KEEP (*(__interrupt_vector_dma)) } > VECT41
131 __interrupt_vector_42 : { KEEP (*(__interrupt_vector_42)) KEEP (*(__interrupt_vector_usci_b1)) } > VECT42
132 __interrupt_vector_43 : { KEEP (*(__interrupt_vector_43)) KEEP (*(__interrupt_vector_usci_a1)) } > VECT43
133 __interrupt_vector_44 : { KEEP (*(__interrupt_vector_44)) KEEP (*(__interrupt_vector_timer0_a1)) } > VECT44
134 __interrupt_vector_45 : { KEEP (*(__interrupt_vector_45)) KEEP (*(__interrupt_vector_timer0_a0)) } > VECT45
135 __interrupt_vector_46 : { KEEP (*(__interrupt_vector_46)) KEEP (*(__interrupt_vector_adc12)) } > VECT46
136 __interrupt_vector_47 : { KEEP (*(__interrupt_vector_47)) KEEP (*(__interrupt_vector_usci_b0)) } > VECT47
137 __interrupt_vector_48 : { KEEP (*(__interrupt_vector_48)) KEEP (*(__interrupt_vector_usci_a0)) } > VECT48
138 __interrupt_vector_49 : { KEEP (*(__interrupt_vector_49)) KEEP (*(__interrupt_vector_escan_if)) } > VECT49
139 __interrupt_vector_50 : { KEEP (*(__interrupt_vector_50)) KEEP (*(__interrupt_vector_wdt)) } > VECT50
140 __interrupt_vector_51 : { KEEP (*(__interrupt_vector_51)) KEEP (*(__interrupt_vector_timer0_b1)) } > VECT51
141 __interrupt_vector_52 : { KEEP (*(__interrupt_vector_52)) KEEP (*(__interrupt_vector_timer0_b0)) } > VECT52
142 __interrupt_vector_53 : { KEEP (*(__interrupt_vector_53)) KEEP (*(__interrupt_vector_comp_e)) } > VECT53
143 __interrupt_vector_54 : { KEEP (*(__interrupt_vector_54)) KEEP (*(__interrupt_vector_unmi)) } > VECT54
144 __interrupt_vector_55 : { KEEP (*(__interrupt_vector_55)) KEEP (*(__interrupt_vector_sysnmi)) } > VECT55
145 __reset_vector :
146 {
147 KEEP (*(__interrupt_vector_56))
148 KEEP (*(__interrupt_vector_reset))
149 KEEP (*(.resetvec))
150 } > RESETVEC
151
152 .stack :
153 {
154 __main_thread_stack_base__ = .;
155 *(.stack)
156 . += __idle_stack_size__;
157 PROVIDE (__stack = .);
158 . = ALIGN(2);
159 __main_thread_stack_end__ = .;
160 } > FRAM :stack
161
162 .rodata :
163 {
164 . = ALIGN(2);
165 *(.plt)
166 *(.rodata .rodata.* .gnu.linkonce.r.* .const .const:*)
167 *(.rodata1)
168 *(.lower.rodata.* .lower.rodata)
169 KEEP (*(.gcc_except_table)) *(.gcc_except_table.*)
170 PROVIDE (__preinit_array_start = .);
171 KEEP (*(.preinit_array))
172 PROVIDE (__preinit_array_end = .);
173 PROVIDE (__init_array_start = .);
174 KEEP (*(SORT(.init_array.*)))
175 KEEP (*(.init_array))
176 PROVIDE (__init_array_end = .);
177 PROVIDE (__fini_array_start = .);
178 KEEP (*(.fini_array))
179 KEEP (*(SORT(.fini_array.*)))
180 PROVIDE (__fini_array_end = .);
181 } > FRAM :rodata
182
183 /* Note: This is a separate .rodata section for sections which are
184 read only but which older linkers treat as read-write.
185 This prevents older linkers from marking the entire .rodata
186 section as read-write. */
187 .rodata2 :
188 {
189 . = ALIGN(2);
190 *(.eh_frame_hdr)
191 KEEP (*(.eh_frame))
192
193 /* gcc uses crtbegin.o to find the start of the constructors, so
194 we make sure it is first. Because this is a wildcard, it
195 doesn't matter if the user does not actually link against
196 crtbegin.o; the linker won't look for a file to match a
197 wildcard. The wildcard also means that it doesn't matter which
198 directory crtbegin.o is in. */
199 KEEP (*crtbegin*.o(.ctors))
200
201 /* We don't want to include the .ctor section from from the
202 crtend.o file until after the sorted ctors. The .ctor section
203 from the crtend file contains the end of ctors marker and it
204 must be last */
205 KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
206 KEEP (*(SORT(.ctors.*)))
207 KEEP (*(.ctors))
208
209 KEEP (*crtbegin*.o(.dtors))
210 KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
211 KEEP (*(SORT(.dtors.*)))
212 KEEP (*(.dtors))
213 } > FRAM
214
215 .data :
216 {
217 . = ALIGN(2);
218 PROVIDE (__datastart = .);
219
220 KEEP (*(.jcr))
221 *(.data.rel.ro.local) *(.data.rel.ro*)
222 *(.dynamic)
223
224 *(.data .data.* .gnu.linkonce.d.*)
225 KEEP (*(.gnu.linkonce.d.*personality*))
226 SORT(CONSTRUCTORS)
227 *(.data1)
228 *(.got.plt) *(.got)
229
230 /* We want the small data sections together, so single-instruction offsets
231 can access them all, and initialized data all before uninitialized, so
232 we can shorten the on-disk segment size. */
233 . = ALIGN(2);
234 *(.sdata .sdata.* .gnu.linkonce.s.* D_2 D_1)
235
236 . = ALIGN(2);
237 *(.lower.data.* .lower.data)
238 . = ALIGN(2);
239
240 _edata = .;
241 PROVIDE (edata = .);
242 PROVIDE (__dataend = .);
243 } > FRAM :data
244
245 /* Note that crt0 assumes this is a multiple of two; all the
246 start/stop symbols are also assumed word-aligned. */
247 PROVIDE(__romdatastart = LOADADDR(.data));
248 PROVIDE (__romdatacopysize = SIZEOF(.data));
249
250 .bss :
251 {
252 . = ALIGN(2);
253 PROVIDE (__bssstart = .);
254 *(.dynbss)
255 *(.sbss .sbss.*)
256 *(.bss .bss.* .gnu.linkonce.b.*)
257 *(.lower.bss.* .lower.bss)
258 . = ALIGN(2);
259 *(COMMON)
260 PROVIDE (__bssend = .);
261 } > FRAM
262 PROVIDE (__bsssize = SIZEOF(.bss));
263
264 /* This section contains data that is not initialised during load
265 or application reset. */
266 .noinit (NOLOAD) :
267 {
268 . = ALIGN(2);
269 PROVIDE (__noinit_start = .);
270 *(.noinit)
271 . = ALIGN(2);
272 PROVIDE (__noinit_end = .);
273 } > FRAM :text
274
275 _end = .;
276 PROVIDE (end = .);
277
278 .text :
279 {
280 PROVIDE (_start = .);
281
282 . = ALIGN(2);
283 KEEP (*(SORT(.crt_*)))
284
285 . = ALIGN(2);
286 KEEP (*(.lowtext))
287
288 . = ALIGN(2);
289 *(.lower.text.* .lower.text)
290
291 . = ALIGN(2);
292 *(.text .stub .text.* .gnu.linkonce.t.* .text:*)
293
294 KEEP (*(.text.*personality*))
295 /* .gnu.warning sections are handled specially by elf32.em. */
296 *(.gnu.warning)
297 *(.interp .hash .dynsym .dynstr .gnu.version*)
298 PROVIDE (__etext = .);
299 PROVIDE (_etext = .);
300 PROVIDE (etext = .);
301 . = ALIGN(2);
302 KEEP (*(.init))
303 KEEP (*(.fini))
304 KEEP (*(.tm_clone_table))
305 } > FRAM
306
307 .upper.rodata :
308 {
309 *(.upper.rodata.* .upper.rodata)
310 } > HIFRAM :upper_rodata
311
312 /* This section contains data that is initialised during load
313 but not on application reset. */
314 .persistent :
315 {
316 . = ALIGN(2);
317 PROVIDE (__persistent_start = .);
318 *(.persistent)
319 . = ALIGN(2);
320 PROVIDE (__persistent_end = .);
321 } > HIFRAM :upper_data
322
323 .upper.data :
324 {
325 __upper_data_init = LOADADDR (.upper.data);
326 /* Status word. */
327 SHORT(1);
328 __high_datastart = .;
329 *(.upper.data.* .upper.data)
330 __high_dataend = .;
331 } > HIFRAM
332
333 __rom_highdatacopysize = SIZEOF(.upper.data) - 2;
334 __rom_highdatastart = LOADADDR(.upper.data) + 2;
335
336 .upper.bss :
337 {
338 . = ALIGN(2);
339 __high_bssstart = .;
340 *(.upper.bss.* .upper.bss)
341 . = ALIGN(2);
342 __high_bssend = .;
343 __high_bsssize = SIZEOF(.upper.bss);
344 } > HIFRAM
345
346 .upper.text :
347 {
348 . = ALIGN(2);
349 *(.upper.text.* .upper.text)
350 } > HIFRAM :upper_text
351
352 /* We create this section so that "end" will always be in the
353 RAM region (matching .stack below), even if the .bss
354 section is empty. */
355 .heap (NOLOAD) :
356 {
357 . = ALIGN(2);
358 __heap_start__ = .;
359 _end = __heap_start__;
360 PROVIDE (end = .);
361 KEEP (*(.heap))
362 _end = .;
363 PROVIDE (end = .);
364 /* This word is here so that the section is not empty, and thus
365 not discarded by the linker. The actual value does not matter
366 and is ignored. */
367 LONG(0);
368 __heap_end__ = .;
369 __HeapLimit = __heap_end__;
370 } > RAM
371 /* WARNING: Do not place anything in RAM here.
372 The heap section must be the last section in RAM and the stack
373 section must be placed at the very end of the RAM region. */
374
375 .infoA : {} > INFOA /* MSP430 INFO FLASH MEMORY SEGMENTS */
376 .infoB : {} > INFOB
377 .infoC : {} > INFOC
378 .infoD : {} > INFOD
379
380 /* The rest are all not normally part of the runtime image. */
381
382 .MP430.attributes 0 :
383 {
384 KEEP (*(.MSP430.attributes))
385 KEEP (*(.gnu.attributes))
386 KEEP (*(__TI_build_attributes))
387 }
388
389 /* Stabs debugging sections. */
390 .stab 0 : { *(.stab) }
391 .stabstr 0 : { *(.stabstr) }
392 .stab.excl 0 : { *(.stab.excl) }
393 .stab.exclstr 0 : { *(.stab.exclstr) }
394 .stab.index 0 : { *(.stab.index) }
395 .stab.indexstr 0 : { *(.stab.indexstr) }
396 .comment 0 : { *(.comment) }
397 /* DWARF debug sections.
398 Symbols in the DWARF debugging sections are relative to the beginning
399 of the section so we begin them at 0. */
400 /* DWARF 1. */
401 .debug 0 : { *(.debug) }
402 .line 0 : { *(.line) }
403 /* GNU DWARF 1 extensions. */
404 .debug_srcinfo 0 : { *(.debug_srcinfo) }
405 .debug_sfnames 0 : { *(.debug_sfnames) }
406 /* DWARF 1.1 and DWARF 2. */
407 .debug_aranges 0 : { *(.debug_aranges) }
408 .debug_pubnames 0 : { *(.debug_pubnames) }
409 /* DWARF 2. */
410 .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
411 .debug_abbrev 0 : { *(.debug_abbrev) }
412 .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) }
413 .debug_frame 0 : { *(.debug_frame) }
414 .debug_str 0 : { *(.debug_str) }
415 .debug_loc 0 : { *(.debug_loc) }
416 .debug_macinfo 0 : { *(.debug_macinfo) }
417 /* SGI/MIPS DWARF 2 extensions. */
418 .debug_weaknames 0 : { *(.debug_weaknames) }
419 .debug_funcnames 0 : { *(.debug_funcnames) }
420 .debug_typenames 0 : { *(.debug_typenames) }
421 .debug_varnames 0 : { *(.debug_varnames) }
422 /* DWARF 3 */
423 .debug_pubtypes 0 : { *(.debug_pubtypes) }
424 .debug_ranges 0 : { *(.debug_ranges) }
425 /* DWARF Extension. */
426 .debug_macro 0 : { *(.debug_macro) }
427
428 /DISCARD/ : { *(.note.GNU-stack) }
429}
430
431
432/****************************************************************************/
433/* Include peripherals memory map */
434/****************************************************************************/
435
436INCLUDE msp430fr6989_symbols.ld
437