source: rtems/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds @ 9e7555e

4.104.114.95
Last change on this file since 9e7555e was 9e7555e, checked in by Joel Sherrill <joel.sherrill@…>, on 03/03/08 at 23:06:26

2008-03-03 Joel Sherrill <joel.sherrill@…>

  • startup/linkcmds, startup/linkcmds.flash: Add wildcard to gcc_except_table section so programs compiled with gcc 4.3.x can link.
  • Property mode set to 100644
File size: 3.5 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.com/license/LICENSE.
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            * Special FreeBSD sysctl sections.
100            */
101           . = ALIGN (16);
102           __start_set_sysctl_set = .;
103           *(set_sysctl_*);
104           __stop_set_sysctl_set = ABSOLUTE(.);
105           *(set_domain_*);
106           *(set_pseudo_*);
107
108           /*
109            * C++ constructors/destructors
110            */
111           . = ALIGN (16);
112           *crtbegin.o(.ctors)
113           *(.ctors)
114           *crtend.o(.ctors)
115           *crtbegin.o(.dtors)
116           *(.dtors)
117           *crtend.o(.dtors)
118
119           /*
120            * Exception frame info
121            */
122           . = ALIGN (16);
123           *(.eh_frame)
124
125           /*
126            * Read-only data
127            */
128           . = ALIGN (16);
129           _rodata_start = .;
130           *(.rodata*)
131           *(.gnu.linkonce.r*)
132
133           . = ALIGN (16);
134           PROVIDE (etext = .);
135
136   } > ram
137
138   .data BLOCK (0x4) : {
139           copy_start = .;
140           *(.shdata)
141           . = ALIGN (0x10);
142           *(.data*)
143           . = ALIGN (0x10);
144           *(.gcc_exc)
145           *(.gcc_except_table*)
146           *(.jcr)
147           . = ALIGN (0x10);
148           *(.gnu.linkonce.d*)
149           . = ALIGN (0x10);
150           _edata = .;
151           copy_end = .;
152   } > ram
153
154  .bss BLOCK (0x4) :
155  {
156    clear_start = . ;
157    *(.shbss)
158    *(.dynbss)
159    *(.bss* .gnu.linkonce.b.*)
160    *(COMMON)
161    . = ALIGN(0x10);
162    _end = .;
163   
164    clear_end = .;
165
166    _WorkspaceBase = .;
167    __WorkspaceBase = .;
168
169  } > ram
170
171  .stab 0 (NOLOAD) :
172  {
173    *(.stab)
174  }
175
176  .stabstr 0 (NOLOAD) :
177  {
178    *(.stabstr)
179  }
180 
181}
Note: See TracBrowser for help on using the repository browser.