__ROM_BASE = ((0x1C000000));
__ROM_SIZE = ((0x00005000));
__ROM_EX_BASE = (0x201EB000);
__ROM_EX_SIZE = (0x00004C00);
__ROM2_BASE = (((0x12000000)));
__ROM2_SIZE = (4096*1024);
__ROM3_BASE = (((((((0x12000000)))) + ((4096*1024)) - 1)) + 1);
__ROM3_SIZE = (4096*3*1024);
__RAM_BASE = (0x20000000);
__RAM_SIZE = (0x001EB000);
__RET_RAM_BASE = (0x00020000);
__RET_RAM_SIZE = (64*1024);
__PSRAM_BASE = (0x60400000);
__PSRAM_SIZE = (0x00C00000);
__PSRAM2_BASE = (0x62000000);
__PSRAM2_SIZE = (0x01000000);
__STACK_SIZE = 0x00002000;
__HEAP_SIZE = 0x00000C00;
MEMORY
{
    ROM (rx) : ORIGIN = __ROM_BASE, LENGTH = __ROM_SIZE
    RAM (rw) : ORIGIN = __RAM_BASE, LENGTH = __RAM_SIZE
    RET_RAM (rw) : ORIGIN = __RET_RAM_BASE, LENGTH = __RET_RAM_SIZE
    ITCM (rw) : ORIGIN = (0x00010000), LENGTH = (64*1024)
    ROM_EX(rw):ORIGIN = __ROM_EX_BASE, LENGTH = __ROM_EX_SIZE
    PSRAM(rw): ORIGIN = __PSRAM_BASE, LENGTH = __PSRAM_SIZE
    PSRAM2(rw): ORIGIN = __PSRAM2_BASE, LENGTH = __PSRAM2_SIZE
    ROM2 (rx): ORIGIN = __ROM2_BASE, LENGTH = __ROM2_SIZE
    ROM3 (rx): ORIGIN = __ROM3_BASE, LENGTH = __ROM3_SIZE
}
ENTRY(Reset_Handler)
SECTIONS
{
  .text :
  {
    KEEP(*ftab.o(.text* .rodata*))
  } > ROM
}
