source: rtems/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds @ 85c92574

4.104.114.84.95
Last change on this file since 85c92574 was 85c92574, checked in by Joel Sherrill <joel.sherrill@…>, on 05/09/02 at 21:37:30

2001-05-09 Joel Sherrill <joel@…>

  • startup/linkcmds: In support of gcc 3.1, added one of more of the sections .jcr, .rodata*, .data.*, .gnu.linkonce.s2.*, .gnu.linkonce.sb2.*, and .gnu.linkonce.s.*. Spacing corrections and direction of segments to memory regions may also have been addressed. This was a sweep across all BSPs.
  • Property mode set to 100644
File size: 3.3 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.OARcorp.com/rtems/license.html.
19 *
20 *  $Id$
21 */
22
23/*
24 * Declare some sizes.
25 * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
26 *      number used there is not constant.  If this happens to you, edit
27 *      the lines marked XXX below to use a constant value.
28 */
29/*
30 * Declare size of heap.
31 * A heap size of 0 means "Use all available memory for the heap".
32 * Initial stack located in on-chip SRAM and not declared there.
33 */
34_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
35
36/*
37 * Declare system clock frequency.
38 */
39_SYS_CLOCK_FREQUENCY = DEFINED(_SYS_CLOCK_FREQUENCY) ? _SYS_CLOCK_FREQUENCY : 54000000;
40
41/*
42 * Setup the memory map of the MCF5206eLITE evaluation board
43 *
44 * The "rom" section is in USER Flash on the board
45 * The "ram" section is placed in USER RAM starting at 10000h
46 *
47 */
48MEMORY
49{
50  ram     : ORIGIN = 0x30000000, LENGTH = 0x00100000
51  rom     : ORIGIN = 0xFFE20000, LENGTH = 128k
52}
53
54MBase = 0x10000000;
55
56/* Interrupt Vector table located at start of external static RAM */
57_VBR = 0x30000000;
58
59SECTIONS
60{
61     
62  /*
63   * Dynamic RAM
64   */
65  ram : {
66          _RamBase = .;
67          __RamBase = .;
68          /* Reserve space for interrupt table */
69          . += 0x400;
70  } >ram
71
72  /*
73   * Text, data and bss segments
74   */
75   .text : {
76           CREATE_OBJECT_SYMBOLS
77           *(.text)
78
79           /*
80            * C++ constructors/destructors
81            */
82           *(.gnu.linkonce.t.*)
83
84           /*
85            * Initialization and finalization code.
86            */
87           . = ALIGN (16);
88           PROVIDE (_init = .);
89           *crti.o(.init)
90           *(.init)
91           *crtn.o(.init)
92           . = ALIGN (16);
93           PROVIDE (_fini = .);
94           *crti.o(.fini)
95           *(.fini)
96           *crtn.o(.fini)
97
98           /*
99            * C++ constructors/destructors
100            */
101           . = ALIGN (16);
102           *crtbegin.o(.ctors)
103           *(.ctors)
104           *crtend.o(.ctors)
105           *crtbegin.o(.dtors)
106           *(.dtors)
107           *crtend.o(.dtors)
108
109           /*
110            * Exception frame info
111            */
112           . = ALIGN (16);
113           *(.eh_frame)
114
115           /*
116            * Read-only data
117            */
118           . = ALIGN (16);
119           _rodata_start = .;
120           *(.rodata*)
121           *(.gnu.linkonce.r*)
122
123           . = ALIGN (16);
124           PROVIDE (etext = .);
125
126   } > ram
127
128   .data BLOCK (0x4) : {
129           copy_start = .;
130           *(.shdata)
131           . = ALIGN (0x10);
132           *(.data)
133           . = ALIGN (0x10);
134           *(.gcc_exc)
135           *(.gcc_except_table)
136           *(.jcr)
137           . = ALIGN (0x10);
138           *(.gnu.linkonce.d*)
139           . = ALIGN (0x10);
140           _edata = .;
141           copy_end = .;
142   } > ram
143
144  .bss BLOCK (0x4) :
145  {
146    clear_start = . ;
147    *(.shbss)
148    *(.bss)
149    *(COMMON)
150    . = ALIGN(0x10);
151    _end = .;
152   
153    clear_end = .;
154
155    _WorkspaceBase = .;
156    __WorkspaceBase = .;
157
158  } > ram
159
160  .stab 0 (NOLOAD) :
161  {
162    *(.stab)
163  }
164
165  .stabstr 0 (NOLOAD) :
166  {
167    *(.stabstr)
168  }
169 
170}
Note: See TracBrowser for help on using the repository browser.