OUTPUT_FORMAT("elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(RESET) MEMORY { EXCEPTIONS (RX) : ORIGIN = 0x00000000, LENGTH = 255 ROM (RX) : ORIGIN = 0x08000000, LENGTH = 64k RAM (RW) : ORIGIN = 0x02000000, LENGTH = 256k } SECTIONS { RESET = 0; /* Exception table * (and optionally an FIQ handler): */ .exctab : { . = RESET; *(STARTUP_EXCTAB) } >EXCEPTIONS /* Code and constants are put into ROM beginning at TEXT_START */ .text : { . = ALIGN(4); *(.text) *(.text.*) *(.rodata) *(.rodata.*) . = ALIGN(4); Startup_VarInitRomStart = .; } >ROM /* initialised variables are linked to this section and data for * initialisation is backed up to Evos_VarInitRomStart. */ .varinit : { . = ALIGN(4); Startup_VarInitRamStart = .; *(.data) *(.data.*) . = ALIGN(4); Startup_VarInitRamEnd = .; } >RAM AT >ROM /* zero initialised data is linked to this section */ .varzero : { . = ALIGN(4); Startup_VarZeroRamStart = .; *(.bss) *(.bss.*) . = ALIGN(4); Startup_VarZeroRamEnd = .; } >RAM /* non initialised data is linked to this section */ .varnoinit : { . = ALIGN(4); *(COMMON) /* the following is only used for the assembler startup example */ . = . + 1024; Startup_Stack = .; } >RAM }