source: ReferenceDesigns/w3_802.11/c/wlan_w3_low/lscript.ld

Last change on this file was 6324, checked in by murphpo, 5 years ago

Updating linker script for CPU Low to include KEEP keyword for reset/exception sections (this is the same change we made in rev 3743 in CPU High). The KEEP keyword is required when using Xilinx SDK 14.7

File size: 4.9 KB
Line 
1/*******************************************************************/
2/*                                                                 */
3/* This file is automatically generated by linker script generator.*/
4/*                                                                 */
5/* Version: Xilinx EDK 14.4 EDK_P.49d                                */
6/*                                                                 */
7/* Copyright (c) 2010 Xilinx, Inc.  All rights reserved.           */
8/*                                                                 */
9/* Description : MicroBlaze Linker Script                          */
10/*                                                                 */
11/*******************************************************************/
12
13_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;
14_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x100;
15
16/* Define Memories in the system */
17
18MEMORY
19{
20   mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr : ORIGIN = 0x00000050, LENGTH = 0x0001FFB0
21}
22
23/* Specify the default entry point to the program */
24
25ENTRY(_start)
26
27/* Define the sections, and where they are mapped in memory */
28
29SECTIONS
30{
31.vectors.reset 0x00000000 : {
32   KEEP (*(.vectors.reset))
33}
34
35.vectors.sw_exception 0x00000008 : {
36   KEEP (*(.vectors.sw_exception))
37}
38
39.vectors.interrupt 0x00000010 : {
40   KEEP (*(.vectors.interrupt))
41}
42
43.vectors.hw_exception 0x00000020 : {
44   KEEP (*(.vectors.hw_exception))
45}
46
47.text : {
48   *(.text)
49   *(.text.*)
50   *(.gnu.linkonce.t.*)
51} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
52
53.init : {
54   KEEP (*(.init))
55} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
56
57.fini : {
58   KEEP (*(.fini))
59} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
60
61.ctors : {
62   __CTOR_LIST__ = .;
63   ___CTORS_LIST___ = .;
64   KEEP (*crtbegin.o(.ctors))
65   KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))
66   KEEP (*(SORT(.ctors.*)))
67   KEEP (*(.ctors))
68   __CTOR_END__ = .;
69   ___CTORS_END___ = .;
70} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
71
72.dtors : {
73   __DTOR_LIST__ = .;
74   ___DTORS_LIST___ = .;
75   KEEP (*crtbegin.o(.dtors))
76   KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
77   KEEP (*(SORT(.dtors.*)))
78   KEEP (*(.dtors))
79   PROVIDE(__DTOR_END__ = .);
80   PROVIDE(___DTORS_END___ = .);
81} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
82
83.rodata : {
84   __rodata_start = .;
85   *(.rodata)
86   *(.rodata.*)
87   *(.gnu.linkonce.r.*)
88   __rodata_end = .;
89} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
90
91.sdata2 : {
92   . = ALIGN(8);
93   __sdata2_start = .;
94   *(.sdata2)
95   *(.sdata2.*)
96   *(.gnu.linkonce.s2.*)
97   . = ALIGN(8);
98   __sdata2_end = .;
99} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
100
101.sbss2 : {
102   __sbss2_start = .;
103   *(.sbss2)
104   *(.sbss2.*)
105   *(.gnu.linkonce.sb2.*)
106   __sbss2_end = .;
107} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
108
109.data : {
110   . = ALIGN(4);
111   __data_start = .;
112   *(.data)
113   *(.data.*)
114   *(.gnu.linkonce.d.*)
115   __data_end = .;
116} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
117
118.got : {
119   *(.got)
120} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
121
122.got1 : {
123   *(.got1)
124} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
125
126.got2 : {
127   *(.got2)
128} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
129
130.eh_frame : {
131   *(.eh_frame)
132} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
133
134.jcr : {
135   *(.jcr)
136} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
137
138.gcc_except_table : {
139   *(.gcc_except_table)
140} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
141
142.sdata : {
143   . = ALIGN(8);
144   __sdata_start = .;
145   *(.sdata)
146   *(.sdata.*)
147   *(.gnu.linkonce.s.*)
148   __sdata_end = .;
149} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
150
151.sbss (NOLOAD) : {
152   . = ALIGN(4);
153   __sbss_start = .;
154   *(.sbss)
155   *(.sbss.*)
156   *(.gnu.linkonce.sb.*)
157   . = ALIGN(8);
158   __sbss_end = .;
159} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
160
161.tdata : {
162   __tdata_start = .;
163   *(.tdata)
164   *(.tdata.*)
165   *(.gnu.linkonce.td.*)
166   __tdata_end = .;
167} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
168
169.tbss : {
170   __tbss_start = .;
171   *(.tbss)
172   *(.tbss.*)
173   *(.gnu.linkonce.tb.*)
174   __tbss_end = .;
175} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
176
177.bss (NOLOAD) : {
178   . = ALIGN(4);
179   __bss_start = .;
180   *(.bss)
181   *(.bss.*)
182   *(.gnu.linkonce.b.*)
183   *(COMMON)
184   . = ALIGN(4);
185   __bss_end = .;
186} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
187
188_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
189
190_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
191
192/* Generate Stack and Heap definitions */
193
194.heap (NOLOAD) : {
195   . = ALIGN(8);
196   _heap = .;
197   _heap_start = .;
198   . += _HEAP_SIZE;
199   _heap_end = .;
200} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
201
202.stack (NOLOAD) : {
203   _stack_end = .;
204   . += _STACK_SIZE;
205   . = ALIGN(8);
206   _stack = .;
207   __stack = _stack;
208} > mb_low_ilmb_bram_cntlr_mb_low_dlmb_bram_cntlr
209
210_end = .;
211}
Note: See TracBrowser for help on using the repository browser.