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

Last change on this file since 35ff211 was 35ff211, checked in by Joel Sherrill <joel.sherrill@…>, on 04/05/00 at 19:09:06

Now all m68k BSPs specify _RamBase. This is necessary for the shared
m68kbsppretaskinghook.c to work.

  • Property mode set to 100644
File size: 2.9 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 * A heap size of 0 means `use all available memory for the heap'.
21 */
22_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
23_RamSize = DEFINED(_RamSize) ? _RamSize : 64M;
24_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
25_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
26
27/*
28 * Declare on-board memory.
29 */
30MEMORY {
31          ram : ORIGIN = 0x00000000, LENGTH = 64M
32          rom : ORIGIN = 0x0F000000, LENGTH = 1M
33        dpram : ORIGIN = 0x0E000000, LENGTH = 8k
34}
35
36/*
37 * Load objects
38 */
39SECTIONS {
40        /*
41         * Boot PROM
42         */
43        rom : {
44                _RomBase = .;
45        } >rom
46
47        /*
48         * Dynamic RAM
49         */
50        ram : {
51                _RamBase = .;
52        } >ram
53
54        /*
55         * Text, data and bss segments
56         */
57        .text : AT(0x0) {
58                *(.text)
59
60                /*
61                 * C++ constructors/destructors
62                 */
63                *(.gnu.linkonce.t.*)
64
65                /*
66                 * Initialization and finalization code.
67                 */
68                PROVIDE (_init = .);
69                *crti.o(.init)
70                *(.init)
71                *crtn.o(.init)
72                PROVIDE (_fini = .);
73                *crti.o(.fini)
74                *(.fini)
75                *crtn.o(.fini)
76
77                /*
78                 * C++ constructors/destructors
79                 */
80                . = ALIGN (16);
81                *crtbegin.o(.ctors)
82                *(.ctors)
83                *crtend.o(.ctors)
84                *crtbegin.o(.dtors)
85                *(.dtors)
86                *crtend.o(.dtors)
87
88                /*
89                 * Exception frame info
90                 */
91                . = ALIGN (16);
92                *(.eh_frame)
93
94                /*
95                 * Read-only data
96                 */
97                . = ALIGN (16);
98                _rodata_start = . ;
99                *(.rodata)
100                *(.gnu.linkonce.r*)
101
102                 . = ALIGN (16);
103                PROVIDE (etext = .);
104        } >rom
105        .data : AT(SIZEOF(.text)) {
106                _copy_start = .;
107                *(.data)
108                *(.gnu.linkonce.d*)
109                *(.gcc_except_table)
110                . = ALIGN (16);
111                PROVIDE (edata = .);
112                _copy_end = .;
113        } >ram
114        .bss : {
115                M68Kvec = .;
116                . += (256 * 4);
117                _clear_start = .;
118                *(.bss)
119                *(COMMON)
120                . = ALIGN (16);
121                PROVIDE (end = .);
122
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                . += (8 * 1024);
137        } >dpram
138}
Note: See TracBrowser for help on using the repository browser.