URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [m68k/] [gen68360/] [startup/] [linkcmds.prom] - Rev 30
Go to most recent revision | Compare with Previous | Blame | View Log
/*
* This file contains GNU linker directives for a generic MC68360 board.
* Variations in memory size and allocation can be made by
* overriding some values with linker command-line arguments.
*
* These linker directives are for producing a PROM version.
* The data segment is placed at the end of the text segment in the PROM.
* The start-up code takes care of copying this region to RAM.
*
* Saskatchewan Accelerator Laboratory
* University of Saskatchewan
* Saskatoon, Saskatchewan, CANADA
* eric@skatter.usask.ca
*
* $Id: linkcmds.prom,v 1.2 2001-09-27 12:00:08 chris Exp $
*/
/*
* Declare some sizes.
* A heap size of 0 means `use all available memory for the heap'.
*/
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
_RamSize = DEFINED(_RamSize) ? _RamSize : 64M;
_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
/*
* Declare on-board memory.
*/
MEMORY {
ram : ORIGIN = 0x00000000, LENGTH = 64M
rom : ORIGIN = 0x0F000000, LENGTH = 1M
dpram : ORIGIN = 0x0E000000, LENGTH = 8k
}
/*
* Load objects
*/
SECTIONS {
/*
* Boot PROM
*/
rom : {
_RomBase = .;
} >rom
/*
* Dynamic RAM
*/
ram : {
_RamBase = .;
} >ram
/*
* Text, data and bss segments
*/
.text : AT(0x0) {
*(.text)
/*
* C++ constructors/destructors
*/
*(.gnu.linkonce.t.*)
/*
* Initialization and finalization code.
*/
PROVIDE (_init = .);
*crti.o(.init)
*(.init)
*crtn.o(.init)
PROVIDE (_fini = .);
*crti.o(.fini)
*(.fini)
*crtn.o(.fini)
/*
* C++ constructors/destructors
*/
. = ALIGN (16);
*crtbegin.o(.ctors)
*(.ctors)
*crtend.o(.ctors)
*crtbegin.o(.dtors)
*(.dtors)
*crtend.o(.dtors)
/*
* Exception frame info
*/
. = ALIGN (16);
*(.eh_frame)
/*
* Read-only data
*/
. = ALIGN (16);
_rodata_start = . ;
*(.rodata)
*(.gnu.linkonce.r*)
. = ALIGN (16);
PROVIDE (etext = .);
} >rom
.data : AT(SIZEOF(.text)) {
_copy_start = .;
*(.data)
*(.gnu.linkonce.d*)
*(.gcc_except_table)
. = ALIGN (16);
PROVIDE (edata = .);
_copy_end = .;
} >ram
.bss : {
M68Kvec = .;
. += (256 * 4);
_clear_start = .;
*(.bss)
*(COMMON)
. = ALIGN (16);
PROVIDE (end = .);
. += _StackSize;
. = ALIGN (16);
_stack_init = .;
_clear_end = .;
_WorkspaceBase = .;
} >ram
/*
* On-chip memory/peripherals
*/
dpram : {
m360 = .;
. += (8 * 1024);
} >dpram
}
Go to most recent revision | Compare with Previous | Blame | View Log