MEMORY { romvec : ORIGIN = 0x10c00000, LENGTH = 0x0000400 flash : ORIGIN = 0x10c00400, LENGTH = 0x0400000 - 0x0000400 eflash : ORIGIN = 0x11000000, LENGTH = 0 ramvec : ORIGIN = 0x0000000, LENGTH = 0x0000400 ram : ORIGIN = 0x0020000, LENGTH = 0x1000000 - 0x0020000 eram : ORIGIN = 0x1000000, LENGTH = 0 } SECTIONS { .romvec : { _flashstart = . ; _romvec = . ; __rom_start = . ; } > romvec .text : { _stext = . ; *(.text) . = ALIGN(0x4) ; *(.text.*) . = ALIGN(0x4) ; *(.exitcall.exit) . = ALIGN(0x4) ; _etext = . ; __data_rom_start = . ; } > flash .eflash : { _flashend = . ; } > eflash .ramvec : { __ram_start = . ; __ramvec = . ; } > ramvec .data : AT(_etext) { . = ALIGN(0x4) ; _sdata = . ; __data_start = . ; . = ALIGN(0x4) ; *(.rodata) . = ALIGN(0x4) ; *(.data) . = ALIGN(0x4) ; *(.data.*) . = ALIGN(0x4) ; __setup_start = .; *(.setup.init) . = ALIGN(0x4) ; __setup_end = .; . = ALIGN(0x4) ; __initcall_start = .; *(.initcall.init) . = ALIGN(0x4) ; __initcall_end = .; . = ALIGN(0x2000) ; *(.data.init_task) . = ALIGN(0x2000) ; _edata = . ; } > ram .bss : { . = ALIGN(0x4) ; _sbss = . ; *(.bss) . = ALIGN(0x4) ; *(COMMON) . = ALIGN(0x4) ; _ebss = . ; _end = . ; } > ram .eram : { __ramend = . ; } > eram }