STARTUP(system/crt0.o) INPUT(system/vector.o) OUTPUT_ARCH(m68k) SEARCH_DIR(.) GROUP(-lc -lgcc) __DYNAMIC = 0; MEMORY { flash (rwx) : ORIGIN = 0x00000000, LENGTH = 0x00200000 sdram (rwx) : ORIGIN = 0x01000000, LENGTH = 0x01000000 sram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00010000 ipsbar (rwx) : ORIGIN = 0x40000000, LENGTH = 0x40000000 } PROVIDE (__stack = 0x2000FFFC); SECTIONS { .sdram : {} > sdram .ipsbar : {} > ipsbar .sram (NOLOAD) : { *(.vector_ram); *(.nbuf) } > sram .flash : {} > flash .text : { __text_start = . ; *(.vector_rom) . = ALIGN (0x100); *(.text) . = ALIGN (16); *(.eh_frame) . = ALIGN (16); *(.gnu.linkonce.t.*) . = ALIGN(0x4); __CTOR_LIST__ = .; ___CTOR_LIST__ = .; LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) *(.ctors) LONG(0) __CTOR_END__ = .; __DTOR_LIST__ = .; ___DTOR_LIST__ = .; LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) *(.dtors) LONG(0) __DTOR_END__ = .; *(.rodata) *(.rodata.*) *(.gcc_except_table) . = ALIGN(0x2); __INIT_SECTION__ = . ; LONG (0x4e560000) /* linkw %fp,#0 */ *(.init) SHORT (0x4e5e) /* unlk %fp */ SHORT (0x4e75) /* rts */ __FINI_SECTION__ = . ; LONG (0x4e560000) /* linkw %fp,#0 */ *(.fini) SHORT (0x4e5e) /* unlk %fp */ SHORT (0x4e75) /* rts */ *(.lit) . = ALIGN(16); _etext = .; etext = .; } > flash . = ALIGN(2); .data : AT (ADDR (.text) + SIZEOF (.text)) { copy_start = .; *(.shdata) *(.data) *(.gnu.linkonce.d.*) . = ALIGN (16); _edata = .; copy_end = .; } > sdram __data_load_start = LOADADDR(.data); __data_load_end = __data_load_start + SIZEOF(.data); .bss : { . = ALIGN(0x4); __bss_start = . ; *(.shbss) *(.bss) *(COMMON) _end = ALIGN (0x8); __end = _end; } > sdram .stab 0 (NOLOAD) : { *(.stab) } .stabstr 0 (NOLOAD) : { *(.stabstr) } } __IPSBAR = ADDR(.ipsbar); __SDRAM = ADDR(.sdram); __SDRAM_SIZE = SIZEOF(.sdram); __SRAM = ADDR(.sram); __SRAM_SIZE = SIZEOF(.sram); __FLASH = ADDR(.flash); __FLASH_SIZE = SIZEOF(.flash);