OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [m68k/] [gen68360/] [startup/] [linkcmds.prom] - Blame information for rev 493

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*
2
 * This file contains GNU linker directives for a generic MC68360 board.
3
 * Variations in memory size and allocation can be made by
4
 * overriding some values with linker command-line arguments.
5
 *
6
 * These linker directives are for producing a PROM version.
7
 * The data segment is placed at the end of the text segment in the PROM.
8
 * The start-up code takes care of copying this region to RAM.
9
 *
10
 * Saskatchewan Accelerator Laboratory
11
 * University of Saskatchewan
12
 * Saskatoon, Saskatchewan, CANADA
13
 * eric@skatter.usask.ca
14
 *
15
 *  $Id: linkcmds.prom,v 1.2 2001-09-27 12:00:08 chris Exp $
16
 */
17
 
18
/*
19
 * Declare some sizes.
20
 * A heap size of 0 means `use all available memory for the heap'.
21
 */
22
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
23
_RamSize = DEFINED(_RamSize) ? _RamSize : 64M;
24
_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
25
_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
26
 
27
/*
28
 * Declare on-board memory.
29
 */
30
MEMORY {
31
          ram : ORIGIN = 0x00000000, LENGTH = 64M
32
          rom : ORIGIN = 0x0F000000, LENGTH = 1M
33
        dpram : ORIGIN = 0x0E000000, LENGTH = 8k
34
}
35
 
36
/*
37
 * Load objects
38
 */
39
SECTIONS {
40
        /*
41
         * Boot PROM
42
         */
43
        rom : {
44
                _RomBase = .;
45
        } >rom
46
 
47
        /*
48
         * Dynamic RAM
49
         */
50
        ram : {
51
                _RamBase = .;
52
        } >ram
53
 
54
        /*
55
         * Text, data and bss segments
56
         */
57
        .text : AT(0x0) {
58
                *(.text)
59
 
60
                /*
61
                 * C++ constructors/destructors
62
                 */
63
                *(.gnu.linkonce.t.*)
64
 
65
                /*
66
                 * Initialization and finalization code.
67
                 */
68
                PROVIDE (_init = .);
69
                *crti.o(.init)
70
                *(.init)
71
                *crtn.o(.init)
72
                PROVIDE (_fini = .);
73
                *crti.o(.fini)
74
                *(.fini)
75
                *crtn.o(.fini)
76
 
77
                /*
78
                 * C++ constructors/destructors
79
                 */
80
                . = ALIGN (16);
81
                *crtbegin.o(.ctors)
82
                *(.ctors)
83
                *crtend.o(.ctors)
84
                *crtbegin.o(.dtors)
85
                *(.dtors)
86
                *crtend.o(.dtors)
87
 
88
                /*
89
                 * Exception frame info
90
                 */
91
                . = ALIGN (16);
92
                *(.eh_frame)
93
 
94
                /*
95
                 * Read-only data
96
                 */
97
                . = ALIGN (16);
98
                _rodata_start = . ;
99
                *(.rodata)
100
                *(.gnu.linkonce.r*)
101
 
102
                 . = ALIGN (16);
103
                PROVIDE (etext = .);
104
        } >rom
105
        .data : AT(SIZEOF(.text)) {
106
                _copy_start = .;
107
                *(.data)
108
                *(.gnu.linkonce.d*)
109
                *(.gcc_except_table)
110
                . = ALIGN (16);
111
                PROVIDE (edata = .);
112
                _copy_end = .;
113
        } >ram
114
        .bss : {
115
                M68Kvec = .;
116
                . += (256 * 4);
117
                _clear_start = .;
118
                *(.bss)
119
                *(COMMON)
120
                . = ALIGN (16);
121
                PROVIDE (end = .);
122
 
123
                . += _StackSize;
124
                . = ALIGN (16);
125
                _stack_init = .;
126
                _clear_end = .;
127
 
128
                _WorkspaceBase = .;
129
        } >ram
130
 
131
        /*
132
         * On-chip memory/peripherals
133
         */
134
        dpram : {
135
                m360 = .;
136
                . += (8 * 1024);
137
        } >dpram
138
}

powered by: WebSVN 2.1.0

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