source: rtems/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds.flash @ 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.6 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 = 0xFFE00000, LENGTH = 0x00100000
52}
53
54MBase = 0x10000000;
55
56/* Interrupt Vector table located at start of external static RAM */
57_VBR = 0x30000000;
58
59SECTIONS
60{
61  /*
62   * Flash ROM
63   */
64  rom : {
65        _RomBase = .;
66  } >rom
67
68  /*
69   * Dynamic RAM
70   */
71  ram : {
72          _RamBase = .;
73          __RamBase = .;
74  } >ram
75
76  /*
77   * Text, data and bss segments
78   */
79   .text : AT(0x30020000) {
80           CREATE_OBJECT_SYMBOLS
81           *(.text*)
82
83           /*
84            * C++ constructors/destructors
85            */
86           *(.gnu.linkonce.t.*)
87
88           /*
89            * Initialization and finalization code.
90            */
91           . = ALIGN (16);
92           PROVIDE (_init = .);
93           *crti.o(.init)
94           *(.init)
95           *crtn.o(.init)
96           . = ALIGN (16);
97           PROVIDE (_fini = .);
98           *crti.o(.fini)
99           *(.fini)
100           *crtn.o(.fini)
101
102           /*
103            * Special FreeBSD sysctl sections.
104            */
105           . = ALIGN (16);
106           __start_set_sysctl_set = .;
107           *(set_sysctl_*);
108           __stop_set_sysctl_set = ABSOLUTE(.);
109           *(set_domain_*);
110           *(set_pseudo_*);
111
112           /*
113            * C++ constructors/destructors
114            */
115           . = ALIGN (16);
116           *crtbegin.o(.ctors)
117           *(.ctors)
118           *crtend.o(.ctors)
119           *crtbegin.o(.dtors)
120           *(.dtors)
121           *crtend.o(.dtors)
122
123           /*
124            * Exception frame info
125            */
126           . = ALIGN (16);
127           *(.eh_frame)
128
129           /*
130            * Read-only data
131            */
132           . = ALIGN (16);
133           _rodata_start = . ;
134           *(.rodata)
135           *(.gnu.linkonce.r*)
136
137           . = ALIGN (16);
138           PROVIDE (etext = .);
139
140   } >rom
141
142   .data 0x30000400 : AT(LOADADDR(.text) + SIZEOF(.text)) {
143           copy_start = .;
144           . = ALIGN (0x10);
145           *(.shdata)
146           . = ALIGN (0x10);
147           *(.data)
148           . = ALIGN (0x10);
149           *(.gcc_exc)
150           *(.gcc_except_table*)
151           . = ALIGN (0x10);
152           *(.gnu.linkonce.d*)
153           . = ALIGN (0x10);
154           _edata = .;
155           copy_end = .;
156   } >ram
157
158  .bss BLOCK (0x4) :
159  {
160    clear_start = . ;
161    *(.shbss)
162    *(.dynbss)
163    *(.bss* .gnu.linkonce.b.*)
164    *(COMMON)
165    . = ALIGN(0x10);
166    _end = .;
167   
168    clear_end = .;
169
170    _WorkspaceBase = .;
171    __WorkspaceBase = .;
172
173  } > ram
174
175  .stab 0 (NOLOAD) :
176  {
177    *(.stab)
178  }
179
180  .stabstr 0 (NOLOAD) :
181  {
182    *(.stabstr)
183  }
184 
185}
Note: See TracBrowser for help on using the repository browser.