RAMBASE = 0x80801000; /* Used to hold any new symbols */ EXTRA_RAM_SIZE = 0x01000000; /* Amount of extra ram allocated by recomp */ MEMORY { extram : ORIGIN = RAMBASE, LENGTH = 64M rom : ORIGIN = 0, LENGTH = 64M } SECTIONS { .ctors : { *(.ctors*) *(.init_array*) } >extram AT >rom .dtors : { *(.dtors*) } >extram AT >rom .rodata : { *(.rodata*) } >extram AT >rom .data : { *(.data*) } >extram AT >rom /* The following sections will be removed from the objcopy */ /* bss isn't noload to make .text rom addresses valid for the recompiler */ .bss : { *(.bss*) *(COMMON) } >extram AT >rom ASSERT(. < RAMBASE + EXTRA_RAM_SIZE, "Maxed out recomp extra ram") /* Padding to push .text to avoid conflicts with original function addresses */ .pad : { . += 0x1000000; } >extram AT >rom .text : { *(.text*) } >extram AT >rom .symtab 0 : { *(.symtab) } .strtab 0 : { *(.strtab) } .shstrtab 0 : { *(.shstrtab) } /DISCARD/ : { *(*); } }