1 /* ---------------------------------------------------------------------------- */
\r
2 /* Atmel Microcontroller Software Support */
\r
3 /* SAM Software Package License */
\r
4 /* ---------------------------------------------------------------------------- */
\r
5 /* Copyright (c) 2014, Atmel Corporation */
\r
7 /* All rights reserved. */
\r
9 /* Redistribution and use in source and binary forms, with or without */
\r
10 /* modification, are permitted provided that the following condition is met: */
\r
12 /* - Redistributions of source code must retain the above copyright notice, */
\r
13 /* this list of conditions and the disclaimer below. */
\r
15 /* Atmel's name may not be used to endorse or promote products derived from */
\r
16 /* this software without specific prior written permission. */
\r
18 /* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
\r
19 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
\r
20 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
\r
21 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
\r
22 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
\r
23 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
\r
24 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
\r
25 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
\r
26 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
\r
27 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
\r
28 /* ---------------------------------------------------------------------------- */
\r
30 /* Section Definitions */
\r
37 KEEP(*(.vectors .vectors.*))
\r
38 *(.text .text.* .gnu.linkonce.t.*)
\r
39 *(.glue_7t) *(.glue_7)
\r
40 *(.rodata .rodata* .gnu.linkonce.r.*)
\r
41 *(.ARM.extab* .gnu.linkonce.armextab.*)
\r
43 /* Support C constructors, and C destructors in both user code
\r
44 and the C library. This also provides support for C++ code. */
\r
48 __preinit_array_start = .;
\r
49 KEEP (*(.preinit_array))
\r
50 __preinit_array_end = .;
\r
53 __init_array_start = .;
\r
54 KEEP (*(SORT(.init_array.*)))
\r
55 KEEP (*(.init_array))
\r
56 __init_array_end = .;
\r
59 KEEP (*crtbegin.o(.ctors))
\r
60 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
\r
61 KEEP (*(SORT(.ctors.*)))
\r
62 KEEP (*crtend.o(.ctors))
\r
68 __fini_array_start = .;
\r
69 KEEP (*(.fini_array))
\r
70 KEEP (*(SORT(.fini_array.*)))
\r
71 __fini_array_end = .;
\r
73 KEEP (*crtbegin.o(.dtors))
\r
74 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
\r
75 KEEP (*(SORT(.dtors.*)))
\r
76 KEEP (*crtend.o(.dtors))
\r
79 _efixed = .; /* End of text section */
\r
85 .relocate : AT (_etext)
\r
89 *(.ramfunc .ramfunc.*);
\r
95 /* .bss section which is used for uninitialized data */
\r
108 /* stack section */
\r
113 . = . + STACK_SIZE;
\r
128 /* .ARM.exidx is sorted, so has to go in its own output section. */
\r
129 PROVIDE_HIDDEN (__exidx_start = .);
\r
132 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
\r
134 PROVIDE_HIDDEN (__exidx_end = .);
\r
138 _ram_end_ = ORIGIN(ram) + LENGTH(ram) -1 ;
\r