diff options
Diffstat (limited to 'c/src/lib/libbsp/h8300/h8sim/startup/linkcmds')
-rw-r--r-- | c/src/lib/libbsp/h8300/h8sim/startup/linkcmds | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/h8300/h8sim/startup/linkcmds b/c/src/lib/libbsp/h8300/h8sim/startup/linkcmds new file mode 100644 index 0000000000..5c2982a873 --- /dev/null +++ b/c/src/lib/libbsp/h8300/h8sim/startup/linkcmds @@ -0,0 +1,94 @@ +/* + * $Id$ + */ + +/* + * Declare some sizes. + */ +_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0; +_RamSize = DEFINED(_RamSize) ? _RamSize : 1M; +_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x10000; +_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000; + +ENTRY("_start") +/* The memory size is 256KB to coincide with the simulator. + Don't change either without considering the other. */ +MEMORY +{ + /* 0xc4 is a magic entry. We should have the linker just + skip over it one day... */ + vectors : o = 0x0000, l = 0xc4 + magicvectors : o = 0xc4, l = 0x3c + /* We still only use 256k as the main ram size. */ + ram : o = 0x0100, l = 0x3fefc + /* The stack starts at the top of main ram. */ + topram : o = 0x3fffc, l = 0x4 + /* This holds variables in the "tiny" sections. */ + tiny : o = 0xff8000, l = 0x7f00 + /* At the very top of the address space is the 8-bit area. */ + eight : o = 0xffff00, l = 0x100 +} + + +SECTIONS +{ + .vectors : + { + *(.vectors) + } > vectors + + .text : + { + CREATE_OBJECT_SYMBOLS + *(.text) + _etext = .; + +/* + ___CTOR_LIST__ = .; + LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + ___CTOR_END__ = .; + ___DTOR_LIST__ = .; + LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + ___DTOR_END__ = .; +*/ + } >ram + .data SIZEOF(.text) + ADDR(.text): + { + *(.data) + CONSTRUCTORS + _edata = .; + } >ram + .bss SIZEOF(.data) + ADDR(.data): + { + _bss_start = .; + *(.bss) + *(COMMON) + . = ALIGN (64); + . += _StackSize; + _stack_init = .; + _clear_end = .; + _WorkspaceBase = .; + . += 512K; /* reserve some memory for workspace */ + _HeapBase = .; + . += _HeapSize; /* reserve some memory for heap */ + _end = .; + __end = .; + } >ram + .tiny : { + *(.tiny) + } > tiny + .eight : { + *(.eight) + } > eight + .stab 0 (NOLOAD) : { + [ .stab ] + } + .stabstr 0 (NOLOAD) : { + [ .stabstr ] + } + +} |