update teensy3 lib to latest, use new vector change mechanism
[teensytas.git] / teensy3 / mk20dx256.ld
CommitLineData
35f00b6c 1/* Teensyduino Core Library
2 * http://www.pjrc.com/teensy/
3 * Copyright (c) 2013 PJRC.COM, LLC.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining
6 * a copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,
9 * distribute, sublicense, and/or sell copies of the Software, and to
10 * permit persons to whom the Software is furnished to do so, subject to
11 * the following conditions:
12 *
13 * 1. The above copyright notice and this permission notice shall be
14 * included in all copies or substantial portions of the Software.
15 *
16 * 2. If the Software is incorporated into a build system that allows
17 * selection among a list of target devices, then similar target
18 * devices manufactured by PJRC.COM must be included in the list of
19 * target devices and selectable in the same manner.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
25 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
26 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
27 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 * SOFTWARE.
29 */
30
31MEMORY
32{
33 FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K
34 RAM (rwx) : ORIGIN = 0x1FFF8000, LENGTH = 64K
35}
36
37
38/* INCLUDE common.ld */
39
40
41/* Teensyduino Core Library
42 * http://www.pjrc.com/teensy/
43 * Copyright (c) 2013 PJRC.COM, LLC.
44 *
45 * Permission is hereby granted, free of charge, to any person obtaining
46 * a copy of this software and associated documentation files (the
47 * "Software"), to deal in the Software without restriction, including
48 * without limitation the rights to use, copy, modify, merge, publish,
49 * distribute, sublicense, and/or sell copies of the Software, and to
50 * permit persons to whom the Software is furnished to do so, subject to
51 * the following conditions:
52 *
53 * 1. The above copyright notice and this permission notice shall be
54 * included in all copies or substantial portions of the Software.
55 *
56 * 2. If the Software is incorporated into a build system that allows
57 * selection among a list of target devices, then similar target
58 * devices manufactured by PJRC.COM must be included in the list of
59 * target devices and selectable in the same manner.
60 *
61 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
62 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
63 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
64 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
65 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
66 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
67 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
68 * SOFTWARE.
69 */
70
71
72
73SECTIONS
74{
75 .text : {
76 . = 0;
77 KEEP(*(.vectors))
78 *(.startup*)
79 /* TODO: does linker detect startup overflow onto flashconfig? */
80 . = 0x400;
81 KEEP(*(.flashconfig*))
82 *(.text*)
83 *(.rodata*)
84 . = ALIGN(4);
85 KEEP(*(.init))
86 . = ALIGN(4);
87 __preinit_array_start = .;
88 KEEP (*(.preinit_array))
89 __preinit_array_end = .;
90 __init_array_start = .;
91 KEEP (*(SORT(.init_array.*)))
92 KEEP (*(.init_array))
93 __init_array_end = .;
94 } > FLASH = 0xFF
95
96 .ARM.exidx : {
97 __exidx_start = .;
98 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
99 __exidx_end = .;
100 } > FLASH
101 _etext = .;
102
103 .usbdescriptortable (NOLOAD) : {
104 /* . = ORIGIN(RAM); */
105 . = ALIGN(512);
106 *(.usbdescriptortable*)
107 } > RAM
108
109 .dmabuffers (NOLOAD) : {
110 . = ALIGN(4);
111 *(.dmabuffers*)
112 } > RAM
113
114 .usbbuffers (NOLOAD) : {
115 . = ALIGN(4);
116 *(.usbbuffers*)
117 } > RAM
118
119 .data : AT (_etext) {
120 . = ALIGN(4);
121 _sdata = .;
a773ac06 122 *(.fastrun*)
35f00b6c 123 *(.data*)
124 . = ALIGN(4);
125 _edata = .;
126 } > RAM
127
128 .noinit (NOLOAD) : {
129 *(.noinit*)
130 } > RAM
131
132 .bss : {
133 . = ALIGN(4);
134 _sbss = .;
135 *(.bss*)
136 *(COMMON)
137 . = ALIGN(4);
138 _ebss = .;
139 __bss_end = .;
140 } > RAM
141
142 _estack = ORIGIN(RAM) + LENGTH(RAM);
143}
144
145
146
147