source: rtems/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds.flash @ c499856

4.115
Last change on this file since c499856 was c499856, checked in by Chris Johns <chrisj@…>, on 03/20/14 at 21:10:47

Change all references of rtems.com to rtems.org.

  • Property mode set to 100644
File size: 4.0 KB
Line 
1/*
2 * This file contains GNU linker directives for an MCF5206eLITE
3 * evaluation board.
4 *
5 * Variations in memory size and allocation can be made by
6 * overriding some values with linker command-line arguments.
7 *
8 * Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia
9 * Author: Victor V. Vengerov <vvv@oktet.ru>
10 *
11 * This file based on work:
12 * David Fiddes, D.J.Fiddes@hw.ac.uk
13 * http://www.calm.hw.ac.uk/davidf/coldfire/
14 *
15 * The license and distribution terms for this file may be
16 * found in the file LICENSE in this distribution or at
17 *
18 * http://www.rtems.org/license/LICENSE.
19 */
20
21/*
22 * Declare some sizes.
23 * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
24 *      number used there is not constant.  If this happens to you, edit
25 *      the lines marked XXX below to use a constant value.
26 */
27/*
28 * Declare size of heap.
29 * A heap size of 0 means "Use all available memory for the heap".
30 * Initial stack located in on-chip SRAM and not declared there.
31 */
32HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
33
34/*
35 * Declare system clock frequency.
36 */
37_SYS_CLOCK_FREQUENCY = DEFINED(_SYS_CLOCK_FREQUENCY) ? _SYS_CLOCK_FREQUENCY : 54000000;
38
39/*
40 * Setup the memory map of the MCF5206eLITE evaluation board
41 *
42 * The "rom" section is in USER Flash on the board
43 * The "ram" section is placed in USER RAM starting at 10000h
44 *
45 */
46MEMORY
47{
48  ram     : ORIGIN = 0x30000000, LENGTH = 0x00100000
49  rom     : ORIGIN = 0xFFE00000, LENGTH = 0x00100000
50}
51
52MBase = 0x10000000;
53
54/* Interrupt Vector table located at start of external static RAM */
55_VBR = 0x30000000;
56
57SECTIONS
58{
59  /*
60   * Flash ROM
61   */
62  rom : {
63        _RomBase = .;
64  } >rom
65
66  /*
67   * Dynamic RAM
68   */
69  ram : {
70          RamBase = .;
71          RamBase = .;
72  } >ram
73
74  /*
75   * Text, data and bss segments
76   */
77   .text : AT(0x30020000) {
78           CREATE_OBJECT_SYMBOLS
79           *(.text*)
80
81           /*
82            * C++ constructors/destructors
83            */
84           *(.gnu.linkonce.t.*)
85
86           /*
87            * Initialization and finalization code.
88            */
89           . = ALIGN (16);
90           PROVIDE (_init = .);
91           *crti.o(.init)
92           *(.init)
93           *crtn.o(.init)
94           . = ALIGN (16);
95           PROVIDE (_fini = .);
96           *crti.o(.fini)
97           *(.fini)
98           *crtn.o(.fini)
99
100           /*
101            * Special FreeBSD sysctl sections.
102            */
103           . = ALIGN (16);
104           __start_set_sysctl_set = .;
105           *(set_sysctl_*);
106           __stop_set_sysctl_set = ABSOLUTE(.);
107           *(set_domain_*);
108           *(set_pseudo_*);
109
110           /*
111            * C++ constructors/destructors
112            */
113           . = ALIGN (16);
114           *crtbegin.o(.ctors)
115           *(.ctors)
116           *crtend.o(.ctors)
117           *crtbegin.o(.dtors)
118           *(.dtors)
119           *crtend.o(.dtors)
120
121           /*
122            * Exception frame info
123            */
124           . = ALIGN (16);
125           *(.eh_frame)
126
127           /*
128            * Read-only data
129            */
130           . = ALIGN (16);
131           _rodata_start = . ;
132           *(.rodata)
133           *(.gnu.linkonce.r*)
134
135           . = ALIGN (16);
136           PROVIDE (etext = .);
137
138   } >rom
139
140  .tdata : {
141    _TLS_Data_begin = .;
142    *(.tdata .tdata.* .gnu.linkonce.td.*)
143    _TLS_Data_end = .;
144  } >rom
145
146  .tbss : {
147    _TLS_BSS_begin = .;
148    *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
149    _TLS_BSS_end = .;
150  } >rom
151
152  _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
153  _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
154  _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
155  _TLS_Alignment = ALIGNOF (.tdata);
156
157   .data 0x30000400 : AT(LOADADDR(.text) + SIZEOF(.text)) {
158           copy_start = .;
159           . = ALIGN (0x10);
160           *(.shdata)
161           . = ALIGN (0x10);
162           *(.data)
163           . = ALIGN (0x10);
164           *(.gcc_exc)
165           *(.gcc_except_table*)
166           . = ALIGN (0x10);
167           *(.gnu.linkonce.d*)
168           . = ALIGN (0x10);
169           _edata = .;
170           copy_end = .;
171   } >ram
172
173  .bss BLOCK (0x4) :
174  {
175    clear_start = . ;
176    *(.shbss)
177    *(.dynbss)
178    *(.bss* .gnu.linkonce.b.*)
179    *(COMMON)
180    . = ALIGN(0x10);
181    _end = .;
182   
183    clear_end = .;
184
185    WorkAreaBase = .;
186    WorkAreaBase = .;
187
188  } > ram
189
190  .stab 0 (NOLOAD) :
191  {
192    *(.stab)
193  }
194
195  .stabstr 0 (NOLOAD) :
196  {
197    *(.stabstr)
198  }
199 
200}
Note: See TracBrowser for help on using the repository browser.