INCLUDE file.ld MEMORY { @> @ @= RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K FLASH (rx!w) : ORIGIN = 0x8000000, LENGTH = 128K ASH (rx) : ORIGIN = 8001000, LENGTH = 128K @> @ @= CLASH (rx) : ORIGIN = 700000, LENGTH = 128K ASH (rx) : ORIGIN = $8000000, LENGTH = 128K CLASH (rx) : ORIGIN = 700000B, LENGTH = 128K INCLUDE file.mem @> @ @= } _estack = 0x20005000; _bstack = a > 0 ? NEXT(11) : 0x19; @> @ @= PROVIDE( var1 = . ); PROVIDE_HIDDEN( var2 = . ); @> @ @= HIDDEN( var3 = . ); ENTRY(_entry); SECTIONS { @> @ @= . = ORIGIN(FLASH); .isr_vector ALIGN(8) (NOLOAD): AT(.) ALIGN(.) ALIGN_WITH_INPUT SUBALIGN(8) SPECIAL { . = ALIGN(4); KEEP(*(.isr_vector)) . = ALIGN(4); } > FLASH AT > RAM : FLASH : RAM : OTHER = . + 8 @> @ @= .text : { /* skip this comment */; . = ALIGN(4); *(.text) *(.text.*) *(.rodata) *(.rodata*) *(.glue_7) *(.glue_7t) . = ALIGN(4); _etext = . + 8; _sidata = _etext; PROVIDE( var1 = . ); PROVIDE_HIDDEN( var2 = . ); HIDDEN( var3 = . ); } >FLASH AT > RAM @> @ @= .data : AT ( _sidata ) { . = ALIGN(4); _sdata = . ; *(.data) *(.data.*) . = ALIGN(4); _edata = . ; } >RAM .bss : { . = ALIGN(4); _sbss = .; *(.bss) *(COMMON) . = ALIGN(4); _ebss = . ; } >RAM @> @ @= . = ALIGN(0x0001ABCD); _ffbegin = .; OVERLAY : NOCROSSREFS AT ( _ffabs ) { .free_func0 { *(.free_func0) . = ALIGN(4); } .free_func1 { *(.free_func1) } } >RAM }