/* mcf52xx.ld - MCF52XX Linker Command File */ GROUP(-ldbug -lc -lgcc -lm -lstdc++) MEMORY { /* SDRAM */ /*.TEXT (RX) : ORIGIN = 0x00020000, LENGTH = 80k*/ .TEXT (RX) : ORIGIN = 0xFFF00000, LENGTH = 80k .DATA (RW) : ORIGIN = 0x00400000, LENGTH = 20k /*.DATA (RW) : ORIGIN = 0xFFE10000, LENGTH = 20k */ } SECTIONS { .application_text : /* code and constants */ { *(.text) *(.strings) . = 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) *(.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) } > .TEXT .initialized_data : { *(.data) } > .DATA .uninitialized_data : { . = ALIGN(0x4); __bss_start = .; *(.bss) *(COMMON) _end = ALIGN(0x8); __end = _end; } > .DATA .stack_data : { . = . + 0x0800; /* set stack to 0x800 bytes (2k) */ __stack = .; } > .DATA __IPSBAR = 0x40000000; /* default = 0x4000_0000 */ ___IPSBAR = __IPSBAR; __SRAM = 0x20000000; ___SRAM = __SRAM; __SDRAM = 0x00000000; ___SDRAM = __SDRAM; __EXT_FLASH = 0xFFE00000; ___EXT_FLASH = __EXT_FLASH; __EXT_SRAM = 0x30000000; ___EXT_SRAM = __EXT_SRAM; /* * Initalize some symbols to be zero so we can reference them in the * crt0 without core dumping. These functions are all optional, but * we do this so we can have our crt0 always use them if they exist. * This is so BSPs work better when using the crt0 installed with gcc. * We have to initalize them twice, so we cover a.out (which prepends * an underscore) and coff object file formats. */ PROVIDE (hardware_init_hook = 0); PROVIDE (_hardware_init_hook = 0); PROVIDE (software_init_hook = 0); PROVIDE (_software_init_hook = 0); } /* end of file - mcf52xx.ld */