OpenCores
URL https://opencores.org/ocsvn/openmsp430/openmsp430/trunk

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [fpga/] [altera_de0_nano_soc/] [doc/] [Terasic/] [DE0_NANO_SOC/] [Demonstrations/] [FPGA/] [DE0_NANO_SOC_ADC/] [software/] [DE0_NANO_SOC_ADC_bsp/] [linker.x] - Blame information for rev 221

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 221 olivier.gi
/*
2
 * linker.x - Linker script
3
 *
4
 * Machine generated for CPU 'nios2_qsys' in SOPC Builder design 'DE0_NANO_SOC_QSYS'
5
 * SOPC Builder design path: ../../DE0_NANO_SOC_QSYS.sopcinfo
6
 *
7
 * Generated: Thu Dec 18 16:09:20 CST 2014
8
 */
9
 
10
/*
11
 * DO NOT MODIFY THIS FILE
12
 *
13
 * Changing this file will have subtle consequences
14
 * which will almost certainly lead to a nonfunctioning
15
 * system. If you do modify this file, be aware that your
16
 * changes will be overwritten and lost when this file
17
 * is generated again.
18
 *
19
 * DO NOT MODIFY THIS FILE
20
 */
21
 
22
/*
23
 * License Agreement
24
 *
25
 * Copyright (c) 2008
26
 * Altera Corporation, San Jose, California, USA.
27
 * All rights reserved.
28
 *
29
 * Permission is hereby granted, free of charge, to any person obtaining a
30
 * copy of this software and associated documentation files (the "Software"),
31
 * to deal in the Software without restriction, including without limitation
32
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
33
 * and/or sell copies of the Software, and to permit persons to whom the
34
 * Software is furnished to do so, subject to the following conditions:
35
 *
36
 * The above copyright notice and this permission notice shall be included in
37
 * all copies or substantial portions of the Software.
38
 *
39
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
40
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
42
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
43
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
45
 * DEALINGS IN THE SOFTWARE.
46
 *
47
 * This agreement shall be governed in all respects by the laws of the State
48
 * of California and by the laws of the United States of America.
49
 */
50
 
51
MEMORY
52
{
53
    reset : ORIGIN = 0x40000, LENGTH = 32
54
    onchip_memory2 : ORIGIN = 0x40020, LENGTH = 159968
55
}
56
 
57
/* Define symbols for each memory base-address */
58
__alt_mem_onchip_memory2 = 0x40000;
59
 
60
OUTPUT_FORMAT( "elf32-littlenios2",
61
               "elf32-littlenios2",
62
               "elf32-littlenios2" )
63
OUTPUT_ARCH( nios2 )
64
ENTRY( _start )
65
 
66
/*
67
 * The alt_load() facility is enabled. This typically happens when there isn't
68
 * an external bootloader (e.g. flash bootloader).
69
 * The LMA (aka physical address) of each loaded section is
70
 * set to the .text memory device.
71
 * The HAL alt_load() routine called from crt0 copies sections from
72
 * the .text memory to RAM as needed.
73
 */
74
 
75
SECTIONS
76
{
77
 
78
    /*
79
     * Output sections associated with reset and exceptions (they have to be first)
80
     */
81
 
82
    .entry :
83
    {
84
        KEEP (*(.entry))
85
    } > reset
86
 
87
    .exceptions :
88
    {
89
        PROVIDE (__ram_exceptions_start = ABSOLUTE(.));
90
        . = ALIGN(0x20);
91
        KEEP (*(.irq));
92
        KEEP (*(.exceptions.entry.label));
93
        KEEP (*(.exceptions.entry.user));
94
        KEEP (*(.exceptions.entry.ecc_fatal));
95
        KEEP (*(.exceptions.entry));
96
        KEEP (*(.exceptions.irqtest.user));
97
        KEEP (*(.exceptions.irqtest));
98
        KEEP (*(.exceptions.irqhandler.user));
99
        KEEP (*(.exceptions.irqhandler));
100
        KEEP (*(.exceptions.irqreturn.user));
101
        KEEP (*(.exceptions.irqreturn));
102
        KEEP (*(.exceptions.notirq.label));
103
        KEEP (*(.exceptions.notirq.user));
104
        KEEP (*(.exceptions.notirq));
105
        KEEP (*(.exceptions.soft.user));
106
        KEEP (*(.exceptions.soft));
107
        KEEP (*(.exceptions.unknown.user));
108
        KEEP (*(.exceptions.unknown));
109
        KEEP (*(.exceptions.exit.label));
110
        KEEP (*(.exceptions.exit.user));
111
        KEEP (*(.exceptions.exit));
112
        KEEP (*(.exceptions));
113
        PROVIDE (__ram_exceptions_end = ABSOLUTE(.));
114
    } > onchip_memory2
115
 
116
    PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions));
117
 
118
    .text :
119
    {
120
        /*
121
         * All code sections are merged into the text output section, along with
122
         * the read only data sections.
123
         *
124
         */
125
 
126
        PROVIDE (stext = ABSOLUTE(.));
127
 
128
        *(.interp)
129
        *(.hash)
130
        *(.dynsym)
131
        *(.dynstr)
132
        *(.gnu.version)
133
        *(.gnu.version_d)
134
        *(.gnu.version_r)
135
        *(.rel.init)
136
        *(.rela.init)
137
        *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
138
        *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
139
        *(.rel.fini)
140
        *(.rela.fini)
141
        *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
142
        *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
143
        *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
144
        *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
145
        *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
146
        *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
147
        *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
148
        *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
149
        *(.rel.ctors)
150
        *(.rela.ctors)
151
        *(.rel.dtors)
152
        *(.rela.dtors)
153
        *(.rel.got)
154
        *(.rela.got)
155
        *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
156
        *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
157
        *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
158
        *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
159
        *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
160
        *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
161
        *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
162
        *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
163
        *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
164
        *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
165
        *(.rel.plt)
166
        *(.rela.plt)
167
        *(.rel.dyn)
168
 
169
        KEEP (*(.init))
170
        *(.plt)
171
        *(.text .stub .text.* .gnu.linkonce.t.*)
172
 
173
        /* .gnu.warning sections are handled specially by elf32.em.  */
174
 
175
        *(.gnu.warning.*)
176
        KEEP (*(.fini))
177
        PROVIDE (__etext = ABSOLUTE(.));
178
        PROVIDE (_etext = ABSOLUTE(.));
179
        PROVIDE (etext = ABSOLUTE(.));
180
 
181
        *(.eh_frame_hdr)
182
        /* Ensure the __preinit_array_start label is properly aligned.  We
183
           could instead move the label definition inside the section, but
184
           the linker would then create the section even if it turns out to
185
           be empty, which isn't pretty.  */
186
        . = ALIGN(4);
187
        PROVIDE (__preinit_array_start = ABSOLUTE(.));
188
        *(.preinit_array)
189
        PROVIDE (__preinit_array_end = ABSOLUTE(.));
190
        PROVIDE (__init_array_start = ABSOLUTE(.));
191
        *(.init_array)
192
        PROVIDE (__init_array_end = ABSOLUTE(.));
193
        PROVIDE (__fini_array_start = ABSOLUTE(.));
194
        *(.fini_array)
195
        PROVIDE (__fini_array_end = ABSOLUTE(.));
196
        SORT(CONSTRUCTORS)
197
        KEEP (*(.eh_frame))
198
        *(.gcc_except_table .gcc_except_table.*)
199
        *(.dynamic)
200
        PROVIDE (__CTOR_LIST__ = ABSOLUTE(.));
201
        KEEP (*(.ctors))
202
        KEEP (*(SORT(.ctors.*)))
203
        PROVIDE (__CTOR_END__ = ABSOLUTE(.));
204
        PROVIDE (__DTOR_LIST__ = ABSOLUTE(.));
205
        KEEP (*(.dtors))
206
        KEEP (*(SORT(.dtors.*)))
207
        PROVIDE (__DTOR_END__ = ABSOLUTE(.));
208
        KEEP (*(.jcr))
209
        . = ALIGN(4);
210
    } > onchip_memory2 = 0x3a880100 /* NOP instruction (always in big-endian byte ordering) */
211
 
212
    .rodata :
213
    {
214
        PROVIDE (__ram_rodata_start = ABSOLUTE(.));
215
        . = ALIGN(4);
216
        *(.rodata .rodata.* .gnu.linkonce.r.*)
217
        *(.rodata1)
218
        . = ALIGN(4);
219
        PROVIDE (__ram_rodata_end = ABSOLUTE(.));
220
    } > onchip_memory2
221
 
222
    PROVIDE (__flash_rodata_start = LOADADDR(.rodata));
223
 
224
    /*
225
     *
226
     * This section's LMA is set to the .text region.
227
     * crt0 will copy to this section's specified mapped region virtual memory address (VMA)
228
     *
229
     * .rwdata region equals the .text region, and is set to be loaded into .text region.
230
     * This requires two copies of .rwdata in the .text region. One read writable at VMA.
231
     * and one read-only at LMA. crt0 will copy from LMA to VMA on reset
232
     *
233
     */
234
 
235
    .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) )
236
    {
237
        PROVIDE (__ram_rwdata_start = ABSOLUTE(.));
238
        . = ALIGN(4);
239
        *(.got.plt) *(.got)
240
        *(.data1)
241
        *(.data .data.* .gnu.linkonce.d.*)
242
 
243
        _gp = ABSOLUTE(. + 0x8000);
244
        PROVIDE(gp = _gp);
245
 
246
        *(.rwdata .rwdata.*)
247
        *(.sdata .sdata.* .gnu.linkonce.s.*)
248
        *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
249
 
250
        . = ALIGN(4);
251
        _edata = ABSOLUTE(.);
252
        PROVIDE (edata = ABSOLUTE(.));
253
        PROVIDE (__ram_rwdata_end = ABSOLUTE(.));
254
    } > onchip_memory2
255
 
256
    PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata));
257
 
258
    /*
259
     *
260
     * This section's LMA is set to the .text region.
261
     * crt0 will copy to this section's specified mapped region virtual memory address (VMA)
262
     *
263
     */
264
 
265
    .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) )
266
    {
267
        __bss_start = ABSOLUTE(.);
268
        PROVIDE (__sbss_start = ABSOLUTE(.));
269
        PROVIDE (___sbss_start = ABSOLUTE(.));
270
 
271
        *(.dynsbss)
272
        *(.sbss .sbss.* .gnu.linkonce.sb.*)
273
        *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
274
        *(.scommon)
275
 
276
        PROVIDE (__sbss_end = ABSOLUTE(.));
277
        PROVIDE (___sbss_end = ABSOLUTE(.));
278
 
279
        *(.dynbss)
280
        *(.bss .bss.* .gnu.linkonce.b.*)
281
        *(COMMON)
282
 
283
        . = ALIGN(4);
284
        __bss_end = ABSOLUTE(.);
285
    } > onchip_memory2
286
 
287
    /*
288
     *
289
     * One output section mapped to the associated memory device for each of
290
     * the available memory devices. These are not used by default, but can
291
     * be used by user applications by using the .section directive.
292
     *
293
     * The output section used for the heap is treated in a special way,
294
     * i.e. the symbols "end" and "_end" are added to point to the heap start.
295
     *
296
     * Because alt_load() is enabled, these sections have
297
     * their LMA set to be loaded into the .text memory region.
298
     * However, the alt_load() code will NOT automatically copy
299
     * these sections into their mapped memory region.
300
     *
301
     */
302
 
303
    /*
304
     *
305
     * This section's LMA is set to the .text region.
306
     * crt0 will copy to this section's specified mapped region virtual memory address (VMA)
307
     *
308
     */
309
 
310
    .onchip_memory2 LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) )
311
    {
312
        PROVIDE (_alt_partition_onchip_memory2_start = ABSOLUTE(.));
313
        *(.onchip_memory2 .onchip_memory2. onchip_memory2.*)
314
        . = ALIGN(4);
315
        PROVIDE (_alt_partition_onchip_memory2_end = ABSOLUTE(.));
316
        _end = ABSOLUTE(.);
317
        end = ABSOLUTE(.);
318
        __alt_stack_base = ABSOLUTE(.);
319
    } > onchip_memory2
320
 
321
    PROVIDE (_alt_partition_onchip_memory2_load_addr = LOADADDR(.onchip_memory2));
322
 
323
    /*
324
     * Stabs debugging sections.
325
     *
326
     */
327
 
328
    .stab          0 : { *(.stab) }
329
    .stabstr       0 : { *(.stabstr) }
330
    .stab.excl     0 : { *(.stab.excl) }
331
    .stab.exclstr  0 : { *(.stab.exclstr) }
332
    .stab.index    0 : { *(.stab.index) }
333
    .stab.indexstr 0 : { *(.stab.indexstr) }
334
    .comment       0 : { *(.comment) }
335
    /* DWARF debug sections.
336
       Symbols in the DWARF debugging sections are relative to the beginning
337
       of the section so we begin them at 0.  */
338
    /* DWARF 1 */
339
    .debug          0 : { *(.debug) }
340
    .line           0 : { *(.line) }
341
    /* GNU DWARF 1 extensions */
342
    .debug_srcinfo  0 : { *(.debug_srcinfo) }
343
    .debug_sfnames  0 : { *(.debug_sfnames) }
344
    /* DWARF 1.1 and DWARF 2 */
345
    .debug_aranges  0 : { *(.debug_aranges) }
346
    .debug_pubnames 0 : { *(.debug_pubnames) }
347
    /* DWARF 2 */
348
    .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
349
    .debug_abbrev   0 : { *(.debug_abbrev) }
350
    .debug_line     0 : { *(.debug_line) }
351
    .debug_frame    0 : { *(.debug_frame) }
352
    .debug_str      0 : { *(.debug_str) }
353
    .debug_loc      0 : { *(.debug_loc) }
354
    .debug_macinfo  0 : { *(.debug_macinfo) }
355
    /* SGI/MIPS DWARF 2 extensions */
356
    .debug_weaknames 0 : { *(.debug_weaknames) }
357
    .debug_funcnames 0 : { *(.debug_funcnames) }
358
    .debug_typenames 0 : { *(.debug_typenames) }
359
    .debug_varnames  0 : { *(.debug_varnames) }
360
 
361
    /* Altera debug extensions */
362
    .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) }
363
}
364
 
365
/* provide a pointer for the stack */
366
 
367
/*
368
 * Don't override this, override the __alt_stack_* symbols instead.
369
 */
370
__alt_data_end = 0x67100;
371
 
372
/*
373
 * The next two symbols define the location of the default stack.  You can
374
 * override them to move the stack to a different memory.
375
 */
376
PROVIDE( __alt_stack_pointer = __alt_data_end );
377
PROVIDE( __alt_stack_limit   = __alt_stack_base );
378
 
379
/*
380
 * This symbol controls where the start of the heap is.  If the stack is
381
 * contiguous with the heap then the stack will contract as memory is
382
 * allocated to the heap.
383
 * Override this symbol to put the heap in a different memory.
384
 */
385
PROVIDE( __alt_heap_start    = end );
386
PROVIDE( __alt_heap_limit    = 0x67100 );

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.