]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_AtmelStudio/LinkerScripts/sam_sram.ld
Update version number in readiness for V10.3.0 release. Sync SVN with reviewed releas...
[freertos] / FreeRTOS / Demo / CORTEX_M7_SAMV71_Xplained_AtmelStudio / LinkerScripts / sam_sram.ld
1 /* ---------------------------------------------------------------------------- */\r
2 /*                  Atmel Microcontroller Software Support                      */\r
3 /*                       SAM Software Package License                           */\r
4 /* ---------------------------------------------------------------------------- */\r
5 /* Copyright (c) 2014, Atmel Corporation                                        */\r
6 /*                                                                              */\r
7 /* All rights reserved.                                                         */\r
8 /*                                                                              */\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
11 /*                                                                              */\r
12 /* - Redistributions of source code must retain the above copyright notice,     */\r
13 /* this list of conditions and the disclaimer below.                            */\r
14 /*                                                                              */\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
17 /*                                                                              */\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
29 \r
30 /* Section Definitions */\r
31 SECTIONS\r
32 {\r
33     .text :\r
34     {\r
35         . = ALIGN(4);\r
36         _sfixed = .;\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
42 \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
45         . = ALIGN(4);\r
46         KEEP(*(.init))\r
47         . = ALIGN(4);\r
48         __preinit_array_start = .;\r
49         KEEP (*(.preinit_array))\r
50         __preinit_array_end = .;\r
51 \r
52         . = ALIGN(4);\r
53         __init_array_start = .;\r
54         KEEP (*(SORT(.init_array.*)))\r
55         KEEP (*(.init_array))\r
56         __init_array_end = .;\r
57 \r
58         . = ALIGN(0x4);\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
63 \r
64         . = ALIGN(4);\r
65         KEEP(*(.fini))\r
66 \r
67         . = ALIGN(4);\r
68         __fini_array_start = .;\r
69         KEEP (*(.fini_array))\r
70         KEEP (*(SORT(.fini_array.*)))\r
71         __fini_array_end = .;\r
72 \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
77 \r
78         . = ALIGN(4);\r
79         _efixed = .;            /* End of text section */\r
80     } > ram\r
81 \r
82     . = ALIGN(8);\r
83     _etext = .;\r
84 \r
85     .relocate : AT (_etext)\r
86     {\r
87         . = ALIGN(8);\r
88         _srelocate = .;\r
89         *(.ramfunc .ramfunc.*);\r
90         *(.data .data.*);\r
91         . = ALIGN(4);\r
92         _erelocate = .;\r
93     } > ram\r
94 \r
95     /* .bss section which is used for uninitialized data */\r
96     .bss (NOLOAD) :\r
97     {\r
98         . = ALIGN(4);\r
99         _sbss = . ;\r
100         _szero = .;\r
101         *(.bss .bss.*)\r
102         *(COMMON)\r
103         . = ALIGN(4);\r
104         _ebss = . ;\r
105         _ezero = .;\r
106     } > ram\r
107 \r
108     /* stack section */\r
109     .stack (NOLOAD):\r
110     {\r
111         . = ALIGN(8);\r
112         _sstack = .;\r
113         . = . + STACK_SIZE;\r
114         . = ALIGN(8);\r
115         _estack = .;\r
116     } > ram\r
117 \r
118     /* heap section */\r
119     .heap (NOLOAD):\r
120     {\r
121         . = ALIGN(8);\r
122          _sheap = .;\r
123         . = . + HEAP_SIZE;\r
124         . = ALIGN(8);\r
125         _eheap = .;\r
126     } > ram\r
127 \r
128     /* .ARM.exidx is sorted, so has to go in its own output section.  */\r
129     PROVIDE_HIDDEN (__exidx_start = .);\r
130     .ARM.exidx :\r
131     {\r
132       *(.ARM.exidx* .gnu.linkonce.armexidx.*)\r
133     } > ram\r
134     PROVIDE_HIDDEN (__exidx_end = .);\r
135 \r
136     . = ALIGN(4);\r
137     _end = . ;\r
138     _ram_end_ = ORIGIN(ram) + LENGTH(ram) -1 ;\r
139 }\r