__USTACK_SIZE = 0x00000400; __ISTACK_SIZE = 0x00000400; MEMORY { RAM : ORIGIN = 0x4, LENGTH = 0x3fffc ROM : ORIGIN = 0xFFE00000, LENGTH = 0x200000 } SECTIONS { .fvectors 0xFFFFFF80: AT(0xFFFFFF80) { KEEP(*(.fvectors)) } > ROM .text 0xFFE00000: AT(0xFFE00000) { *(.text) *(.text.*) *(P) etext = .; } > ROM .rvectors ALIGN(4): { _rvectors_start = .; KEEP(*(.rvectors)) _rvectors_end = .; } > ROM .init : { KEEP(*(.init)) __preinit_array_start = .; KEEP(*(.preinit_array)) __preinit_array_end = .; __init_array_start = (. + 3) & ~ 3; KEEP(*(.init_array)) KEEP(*(SORT(.init_array.*))) __init_array_end = .; __fini_array_start = .; KEEP(*(.fini_array)) KEEP(*(SORT(.fini_array.*))) __fini_array_end = .; } > ROM .fini : { KEEP(*(.fini)) } > ROM .got : { *(.got) *(.got.plt) } > ROM .rodata : { *(.rodata) *(.rodata.*) *(C_1) *(C_2) *(C) _erodata = .; } > ROM .eh_frame_hdr : { *(.eh_frame_hdr) } > ROM .eh_frame : { *(.eh_frame) } > ROM .jcr : { *(.jcr) } > ROM .tors : { __CTOR_LIST__ = .; . = ALIGN(2); ___ctors = .; *(.ctors) ___ctors_end = .; __CTOR_END__ = .; __DTOR_LIST__ = .; ___dtors = .; *(.dtors) ___dtors_end = .; __DTOR_END__ = .; . = ALIGN(2); _mdata = .; } > ROM .data : AT(_mdata) { _data = .; *(.data) *(.data.*) *(D) *(D_1) *(D_2) _edata = .; } > RAM .gcc_exc : { *(.gcc_exc) } > RAM .bss : { _bss = .; *(.bss) *(.bss.**) *(COMMON) *(B) *(B_1) *(B_2) _ebss = .; _end = .; } > RAM .ustack : { . = ALIGN(8); . = . + __USTACK_SIZE; PROVIDE(_ustack = .); } > RAM .istack : { . = ALIGN(8); . = . + __ISTACK_SIZE; PROVIDE(_istack = .); } > RAM }