annotate packages/hal/powerpc/sim/current/src/sim.ld @ 0:3111d98ba7b3 ecos-v1_1-release

Initial commit of eCos version 1.1
author jlarmour
date Tue, 11 May 1999 11:16:07 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
1 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3 // sim.ld
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
5 // Linker script for PowerPC simulator
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
6 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
8 //####COPYRIGHTBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
9 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
10 // -------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
11 // The contents of this file are subject to the Cygnus Public License
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
12 // Version 1.0 (the "License"); you may not use this file except in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
13 // compliance with the License. You may obtain a copy of the License at
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
14 // http://www.cygnus.com.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
15 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
16 // Software distributed under the License is distributed on an "AS IS"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
18 // License for the specific language governing rights and limitations under
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
19 // the License.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
20 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
21 // The Original Code is eCos code, released September 30, 1998.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
22 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
23 // The Initial Developer of the Original Code is Cygnus. Portions created
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
24 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
25 // -------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
26 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
27 //####COPYRIGHTEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
28 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
29 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
30 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
31 // Author(s): nickg
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
32 // Contributors:nickg
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
33 // Date: 1998-02-17
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
34 // Purpose: PowerPC simulator Linker script
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
35 // Description: This script is passed to the linker to define the memory
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
36 // of the PowerPC simulator.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
37 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
38 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
39 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 STARTUP(vectors.o)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 OUTPUT_FORMAT("elf32-powerpc")
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 OUTPUT_ARCH(powerpc)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44 ENTRY(reset_vector)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 // Do we need any of these for elf?
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46 // __DYNAMIC = 0;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 GROUP(libtarget.a libgcc.a)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50 #include <pkgconf/hal.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52 MEMORY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55 // In a RAM system, fake the division between ROM and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
56 // RAM for testing.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57 ram_vectors : ORIGIN = 0x00000000, LENGTH = 0x2000
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58 rom_vectors : ORIGIN = 0x00002000, LENGTH = 0x2000
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59 ram : ORIGIN = 0x00004000, LENGTH = 496k
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60 rom : ORIGIN = 0x00080000, LENGTH = 512k
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63 // Allocate the stack to be at the top of memory, since the stack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64 // grows down
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66 PROVIDE (__interrupt_stack = 0x00100000);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68 // Initalize some symbols to be zero so we can reference them in the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69 // crt0 without core dumping. These functions are all optional, but
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 // we do this so we can have our crt0 always use them if they exist.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71 // This is so BSPs work better when using the crt0 installed gcc.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 // We have to initalize them twice, so we cover a.out (which prepends
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73 // an underscore) and coff object file formats.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75 //PROVIDE (hardware_init_hook = 0);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 //PROVIDE (software_init_hook = 0);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78 SECTIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 // Read-only sections, merged into text segment:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81 .interp : { *(.interp) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82 .hash : { *(.hash) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 .dynsym : { *(.dynsym) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 .dynstr : { *(.dynstr) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 .rel.text : { *(.rel.text) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86 .rela.text : { *(.rela.text) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 .rel.data : { *(.rel.data) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88 .rela.data : { *(.rela.data) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 .rel.rodata : { *(.rel.rodata) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90 .rela.rodata : { *(.rela.rodata) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 .rel.got : { *(.rel.got) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92 .rela.got : { *(.rela.got) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 .rel.got1 : { *(.rel.got1) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94 .rela.got1 : { *(.rela.got1) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95 .rel.got2 : { *(.rel.got2) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96 .rela.got2 : { *(.rela.got2) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 .rel.ctors : { *(.rel.ctors) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 .rela.ctors : { *(.rela.ctors) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99 .rel.dtors : { *(.rel.dtors) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100 .rela.dtors : { *(.rela.dtors) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101 .rel.init : { *(.rel.init) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102 .rela.init : { *(.rela.init) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103 .rel.fini : { *(.rel.fini) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104 .rela.fini : { *(.rela.fini) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105 .rel.bss : { *(.rel.bss) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106 .rela.bss : { *(.rela.bss) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 .rel.plt : { *(.rel.plt) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108 .rela.plt : { *(.rela.plt) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109 .init : {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110 *(.init.head)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111 *(.init)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 *(.init.tail)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 } >rom =0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 .plt : { *(.plt) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115 .text :
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117 _stext = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 *(.text*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 *(.gnu.warning)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 *(.gnu.linkonce*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121 } >rom =0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122 _etext = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123 PROVIDE (etext = .);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 .fini : {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 *(.fini.head)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126 *(.fini)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
127 *(.fini.tail)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 } >rom =0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
129
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130 .rodata1 : { *(.rodata1) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 .rodata : { *(.rodata*) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 __FIXUP_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133 .fixup : { *(.fixup) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 __FIXUP_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135 __EXCEPT_START__ =.;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 .gcc_except_table : { *(.gcc_except_table) } >rom
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 __EXCEPT_END__ =.;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138 // Read-write section, merged into data segment:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 __rom_data_start = ALIGN(4);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140 .data :
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 AT( __rom_data_start )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 __ram_data_start = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 PROVIDE( __ram_data_start = .);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 *(.data*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 __GOT1_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 *(.got1)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 __GOT1_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150 // Put .ctors and .dtors next to the .got2 section, so that the pointers
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 // get relocated with -mrelocatable.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152 #ifdef CYG_KERNEL_USE_INIT_PRIORITY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153 . = ALIGN(8);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 __CTOR_LIST__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155 KEEP(*(SORT(.ctors*)))
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 __CTOR_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157 __DTOR_LIST__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 KEEP(*(SORT(.dtors*)))
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159 __DTOR_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 __CTOR_LIST__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162 *sched.o(.ctors*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163 *clock.o(.ctors*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 *thread.o(.ctors*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165 *(.ctors*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 __CTOR_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167 __DTOR_LIST__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168 *(.dtors*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 __DTOR_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 __GOT2_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 *(.got2)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
173 __GOT2_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
174 __GOT_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175 _GLOBAL_OFFSET_TABLE_ = . + 32768;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 _SDA_BASE_ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177 *(.got.plt)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 *(.got)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 __GOT_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180 *(.dynamic)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181 // We want the small data sections together, so single-instruction offsets
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182 // can access them all, and initialized data all before uninitialized, so
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
183 // we can shorten the on-disk segment size.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184 __SDATA_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 *(.sdata)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186 __SDATA2_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187 *(.sdata2)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 } >ram
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 __ram_data_end = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 PROVIDE( __ram_data_end = .);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 _edata = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 PROVIDE (edata = .);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 __bss_start = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194 .sbss :
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
195 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196 __SBSS_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 *(.sbss*)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198 __SBSS_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199 __SBSS2_START__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200 *(.sbss2)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 __SBSS2_END__ = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202 *(.scommon)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203 } >ram
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 .bss :
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
207 *(.dynbss)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 *(.bss)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209 *(COMMON)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210 } >ram
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 _end = . ;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212 PROVIDE (end = .);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215 __rom_ram_vectors_start = ALIGN(4);
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 #if 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
217 .vectors :
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
218 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219 *(.vectors)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220 } > ram_vectors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 .ram_vectors :
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 AT ( __rom_ram_vectors_start )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225 __ram_vectors_start = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 *(.ram_vectors)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227 __ram_vectors_end = .;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 } >ram_vectors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
230 .rom_vectors :
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 *(.rom_vectors)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233 } >rom_vectors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237