Add 'teensytp/' from commit 'be48e888050f18a31e788269c8f47358036a8e3b'
[megadrive.git] / teensytp / teensy3 / mk20dx256.ld
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
31 MEMORY
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
73 SECTIONS
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 = .; 
122                 *(.fastrun*)
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