/*
 *  @(#) $Id: lpc2388_sram.ld,v 1.2 2009-12-27 05:07:48 suikan Exp $
 */

OUTPUT_FORMAT("elf32-littlearm") 
OUTPUT_ARCH(arm)

PROVIDE(hardware_init_hook = 0);
PROVIDE(software_init_hook = 0);
PROVIDE(software_term_hook = 0);


MEMORY
  {
    MEM_SRAM1 (XW)     : ORIGIN = 0x00000000, LENGTH = 64	/* FLASH領域にマッピングされたSRAM */
    MEM_SRAM2 (XW)     : ORIGIN = 0x40000400, LENGTH = 63K	/* 実装されているSRAMの後半部分 */
    MEM_USBSRAM (XW)  : ORIGIN = 0x7FD00000, LENGTH = 16K
    MEM_ETHERSRAM (XW): ORIGIN = 0x7FE00000, LENGTH = 16K
    MEM_EXTSRAM_0 (XW): ORIGIN = 0x80000000, LENGTH = 64K
    MEM_EXTSRAM_1 (XW): ORIGIN = 0x81000000, LENGTH = 64K
  }


SECTIONS
{
	.vector : AT(0x40000000)
	{
        KEEP(start.o(.vector))
	} > MEM_SRAM1

    .text :
    {
        KEEP(start.o(.text))
        KEEP(*(.text))
    } > MEM_SRAM2
    
    . = ALIGN(4);
    .rodata : { 
		*(.rodata) 
		*(.rodata.str1.4) 
    } > MEM_SRAM2

    . = ALIGN(4);
    .data : 
    {
        *(.data)
    } > MEM_SRAM2
    
    . = ALIGN(4);
    __bss_start = .	;		
    .bss       :
    {
      *(.bss)
      *(COMMON)
    } > MEM_SRAM2

    __bss_end = __bss_start + SIZEOF(.bss);

}
