source: rtems/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom @ c0ebf02

4.104.114.84.95
Last change on this file since c0ebf02 was c0ebf02, checked in by Joel Sherrill <joel.sherrill@…>, on 01/13/00 at 15:06:24

New patch from Eric Norum plus some minor mods by Joel.

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/*
2 * This file contains GNU linker directives for a generic MC68360 board.
3 * Variations in memory size and allocation can be made by
4 * overriding some values with linker command-line arguments.
5 *
6 * These linker directives are for producing a PROM version.
7 * The data segment is placed at the end of the text segment in the PROM.
8 * The start-up code takes care of copying this region to RAM.
9 *
10 * Saskatchewan Accelerator Laboratory
11 * University of Saskatchewan
12 * Saskatoon, Saskatchewan, CANADA
13 * eric@skatter.usask.ca
14 *
15 *  $Id$
16 */
17
18/*
19 * Declare some sizes.
20 */
21HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
22StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
23
24/*
25 * Declare on-board memory.
26 */
27MEMORY {
28          ram : ORIGIN = 0x00000000, LENGTH = 64M
29          rom : ORIGIN = 0x0F000000, LENGTH = 1M
30        dpram : ORIGIN = 0x0E000000, LENGTH = 8k
31}
32
33/*
34 * Load objects
35 */
36SECTIONS {
37        /*
38         * Boot PROM
39         */
40        rom : {
41                _RomBase = .;
42        } >rom
43
44        /*
45         * Dynamic RAM
46         */
47        ram : {
48                _RamBase = .;
49        } >ram
50
51        /*
52         * Text, data and bss segments
53         */
54        .text : AT(0x0) {
55                *(.text)
56
57                /*
58                 * C++ constructors/destructors
59                 */
60                *(.gnu.linkonce.t.*)
61
62                /*
63                 * Initialization and finalization code.
64                 */
65                PROVIDE (_init = .);
66                *crti.o(.init)
67                *(.init)
68                *crtn.o(.init)
69                PROVIDE (_fini = .);
70                *crti.o(.fini)
71                *(.fini)
72                *crtn.o(.fini)
73
74                /*
75                 * C++ constructors/destructors
76                 */
77                . = ALIGN (16);
78                *crtbegin.o(.ctors)
79                *(.ctors)
80                *crtend.o(.ctors)
81                *crtbegin.o(.dtors)
82                *(.dtors)
83                *crtend.o(.dtors)
84
85                /*
86                 * Exception frame info
87                 */
88                . = ALIGN (16);
89                *(.eh_frame)
90
91                /*
92                 * Read-only data
93                 */
94                . = ALIGN (16);
95                _rodata_start = . ;
96                *(.rodata)
97                *(.gnu.linkonce.r*)
98
99                 . = ALIGN (16);
100                PROVIDE (etext = .);
101        } >rom
102        .data : AT(SIZEOF(.text)) {
103                copy_start = .;
104                *(.data)
105                *(.gnu.linkonce.d*)
106                *(.gcc_except_table)
107                . = ALIGN (16);
108                PROVIDE (_edata = .);
109                copy_end = .;
110        } >ram
111        .bss : {
112                M68Kvec = .;
113                _M68Kvec = .;
114                . += (256 * 4);
115                clear_start = .;
116                *(.bss)
117                *(COMMON)
118                . = ALIGN (16);
119                _end = .;
120
121                _HeapStart = .;
122                . += HeapSize;
123                . += StackSize;
124                . = ALIGN (16);
125                stack_init = .;
126                clear_end = .;
127
128                _WorkspaceBase = .;
129        } >ram
130
131        /*
132         * On-chip memory/peripherals
133         */
134        dpram : {
135                m360 = .;
136                _m360 = .;
137                . += (8 * 1024);
138
139        } >dpram
140}
Note: See TracBrowser for help on using the repository browser.