56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
|
//------------------------------------------------------------------------------
|
||
|
// Linker scatter for running in external SDRAM on the AT91SAM9260
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
//
|
||
|
// Define a memory region that covers the entire 4 GB addressible space of the
|
||
|
// processor.
|
||
|
//
|
||
|
define memory mem with size = 4G;
|
||
|
|
||
|
//
|
||
|
// Define a region for the on-chip flash. size = 2MB
|
||
|
//
|
||
|
define region FLASH = mem:[from 0x20000000 to 0x201FFFFF];
|
||
|
|
||
|
//
|
||
|
// Define a region for the on-chip SRAM. size = 30MB
|
||
|
//
|
||
|
define region SRAM = mem:[from 0x20200000 to 0x21FFFFFF];
|
||
|
|
||
|
//
|
||
|
// Indicate that the read/write values should be initialized by copying from
|
||
|
// flash.
|
||
|
//
|
||
|
initialize by copy { readwrite };
|
||
|
|
||
|
//
|
||
|
// Indicate that the noinit values should be left alone. This includes the
|
||
|
// stack, which if initialized will destroy the return address from the
|
||
|
// initialization code, causing the processor to branch to zero and fault.
|
||
|
//
|
||
|
do not initialize { section .noinit };
|
||
|
|
||
|
//
|
||
|
// Place the interrupt vectors at the start of flash.
|
||
|
//
|
||
|
place at start of FLASH { readonly section .intvec };
|
||
|
|
||
|
//
|
||
|
// Place the remainder of the read-only items into flash.
|
||
|
//
|
||
|
place in FLASH { readonly };
|
||
|
|
||
|
//
|
||
|
// Place the RAM vector table at the start of SRAM.
|
||
|
//
|
||
|
place at start of SRAM { section VTABLE };
|
||
|
|
||
|
//
|
||
|
// Place all read/write items into SRAM.
|
||
|
//
|
||
|
place in SRAM { readwrite};
|
||
|
keep { section FSymTab };
|
||
|
keep { section VSymTab };
|
||
|
keep { section .rti_fn* };
|