source: rtems/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsflash @ cba119c9

4.104.114.84.95
Last change on this file since cba119c9 was 1612af0, checked in by Joel Sherrill <joel.sherrill@…>, on 06/17/05 at 14:06:05

2005-06-17 Mike Bertosh <mbertosh@…>

  • .cvsignore, ChangeLog?, Makefile.am, README, bsp_specs, configure.ac, clock/clock.c, console/console.c, include/bsp.h, include/coverhd.h, include/tm27.h, network/network.c, start/start.S, startup/bspclean.c, startup/bspstart.c, startup/init5235.c, startup/linkcmds, startup/linkcmdsflash, startup/linkcmdsram, timer/timer.c: New files.
  • Property mode set to 100644
File size: 4.8 KB
Line 
1/*
2 *  This file contains directives for the GNU linker which are specific
3 *  to the Arcturus uC DIMM ColdFire 5282
4 *
5 *  COPYRIGHT (c) 1989-1999.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.OARcorp.com/rtems/license.html.
11 *
12 *  $Id$
13 */
14
15/*
16 * Declare some sizes.
17 */
18_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0 ;
19_RamSize = DEFINED(_RamSize) ? _RamSize : 16M ;
20_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0 ;
21
22
23/*
24 * System clock speed
25 */
26_CPUClockSpeed = DEFINED(_CPUClockSpeed) ? _CPUClockSpeed : 150000000 ;
27
28/*
29 * Location of on-chip devices
30 */
31__IPSBAR = DEFINED(__IPSBAR) ? __IPSBAR : 0x40000000 ;
32__SRAMBASE = DEFINED(__SRAMBASE) ? __SRAMBASE : 0x20000000 ;
33_VBR = 0x0;
34
35ENTRY(start)
36/*
37 *  NOTE: If loading to flash with dBUG remember to change the origin to 0xFFF00000 because that's where user flash is
38 *  located.
39 */
40MEMORY
41{
42    ram : ORIGIN = 0, LENGTH = 16M
43    sram : ORIGIN = 0x20000000, LENGTH = 64K
44    flash : ORIGIN = 0xFFE00000, LENGTH = 2M
45}
46
47SECTIONS
48{
49   
50    _header_offset = 0;
51   
52    /*
53     * Text, data and bss segments
54     */
55    .text : {
56       
57       *(.text)
58        *(.ram_code)
59
60        /*
61         * C++ constructors/destructors
62         */
63        *(.gnu.linkonce.t.*)
64
65        /*
66         * Initialization and finalization code.
67              *
68              * Various files can provide initialization and finalization
69         * functions.  crtbegin.o and crtend.o are two instances. The
70         * body of these functions are in .init and .fini sections. We
71         * accumulate the bodies here, and prepend function prologues
72         * from crti.o and function epilogues from crtn.o. crti.o must
73         * be linked first; crtn.o must be linked last.  Because these
74         * are wildcards, it doesn't matter if the user does not
75         * actually link against crti.o and crtn.o; the linker won't
76         * look for a file to match a wildcard.  The wildcard also
77         * means that it doesn't matter which directory crti.o and
78         * crtn.o are in.
79         */
80        PROVIDE (_init = .);
81        *crti.o(.init)
82        *(.init)
83        *crtn.o(.init)
84        PROVIDE (_fini = .);
85        *crti.o(.fini)
86        *(.fini)
87        *crtn.o(.fini)
88
89        /*
90         * Special FreeBSD sysctl sections.
91         */
92        . = ALIGN (16);
93        __start_set_sysctl_set = .;
94        *(set_sysctl_*);
95        __stop_set_sysctl_set = ABSOLUTE(.);
96        *(set_domain_*);
97        *(set_pseudo_*);
98
99
100        /*
101         * C++ constructors/destructors
102         *
103         * gcc uses crtbegin.o to find the start of the constructors
104         * and destructors so we make sure it is first.  Because this
105         * is a wildcard, it doesn't matter if the user does not
106         * actually link against crtbegin.o; the linker won't look for
107         * a file to match a wildcard.  The wildcard also means that
108         * it doesn't matter which directory crtbegin.o is in. The
109         * constructor and destructor list are terminated in
110         * crtend.o.  The same comments apply to it.
111         */
112        . = ALIGN (16);
113        *crtbegin.o(.ctors)
114        *(.ctors)
115        *crtend.o(.ctors)
116        *crtbegin.o(.dtors)
117        *(.dtors)
118        *crtend.o(.dtors)
119
120        /*
121         * Exception frame info
122         */
123        . = ALIGN (16);
124        *(.eh_frame)
125
126        /*
127         * Read-only data
128         */
129        . = ALIGN (16);
130        _rodata_start = . ;
131        *(.rodata*)
132        *(.gnu.linkonce.r*)
133       
134        . = ALIGN (16);
135
136        *(.console_gdb_xfer)
137        *(.bootstrap_data)
138        . = ALIGN(16);
139        _estuff = .;
140    PROVIDE (_etext = .);
141    } >flash
142       
143        .data 0x4000 : AT ( ADDR(.text) + SIZEOF ( .text ) )
144        {
145            PROVIDE( _data_dest_start = . );
146            PROVIDE( _copy_start = .);
147            *(.data)
148            *(.gnu.linkonce.d*)
149            *(.gcc_except_table)
150            *(.jcr)
151            . = ALIGN (16);
152            PROVIDE (_edata = .);
153        PROVIDE (_copy_end = .);
154        PROVIDE (_data_dest_end = . );
155        } >ram
156
157        _data_src_start = _estuff;
158        _data_src_end = _data_dest_start + SIZEOF(.data);       
159       
160        .bss : {
161                _clear_start = .;
162                *(.bss)
163                *(COMMON)
164                . = ALIGN (16);
165                PROVIDE (end = .);
166                _clear_end = .;
167
168                _WorkspaceBase = .;
169        } >ram
170  /* Stabs debugging sections.  */
171  .stab 0 : { *(.stab) }
172  .stabstr 0 : { *(.stabstr) }
173  .stab.excl 0 : { *(.stab.excl) }
174  .stab.exclstr 0 : { *(.stab.exclstr) }
175  .stab.index 0 : { *(.stab.index) }
176  .stab.indexstr 0 : { *(.stab.indexstr) }
177  .comment 0 : { *(.comment) }
178
179PROVIDE (end_of_all = .); 
180}
Note: See TracBrowser for help on using the repository browser.