/* before memory.x to allow override */ ENTRY(Reset) INCLUDE memory.x /* after memory.x to allow override */ PROVIDE(__pre_init = DefaultPreInit); PROVIDE(__zero_bss = default_mem_hook); PROVIDE(__init_data = default_mem_hook); INCLUDE exception.x SECTIONS { .text : ALIGN(4) { _stext = .; . = ALIGN (4); _text_start = ABSOLUTE(.); . = ALIGN (4); *(.literal .text .literal.* .text.*) _text_end = ABSOLUTE(.); _etext = .; } > ROTEXT .rodata : ALIGN(4) { _rodata_start = ABSOLUTE(.); . = ALIGN (4); *(.rodata .rodata.*) . = ALIGN(4); _rodata_end = ABSOLUTE(.); } > RODATA .rodata.wifi : { . = ALIGN(4); *( .rodata_wlog_*.* ) . = ALIGN(4); } > RODATA .rwtext : ALIGN(4) { . = ALIGN (4); *(.rwtext.literal .rwtext .rwtext.literal.* .rwtext.*) . = ALIGN (4); } > RWTEXT /* wifi data */ .rwtext.wifi : ALIGN(4) { . = ALIGN(4); *( .wifi0iram .wifi0iram.*) *( .wifirxiram .wifirxiram.*) *( .wifislprxiram .wifislprxiram.*) *( .wifislpiram .wifislpiram.*) *( .phyiram .phyiram.*) *( .iram1 .iram1.*) . = ALIGN(4); } > RWTEXT .iram0_reserved_for_text (NOLOAD) : ALIGN(4) { . = ORIGIN(RWDATA) + SIZEOF(.rwtext) + SIZEOF(.rwtext.wifi); } > RWDATA .data : ALIGN(4) { _data_start = ABSOLUTE(.); . = ALIGN (4); *(.data .data.*) _data_end = ABSOLUTE(.); } > RWDATA AT > RODATA .data.wifi : { . = ALIGN(4); *( .dram1 .dram1.*) } > RWDATA AT > RODATA /* LMA of .data */ _sidata = LOADADDR(.data); .bss (NOLOAD) : ALIGN(4) { _bss_start = ABSOLUTE(.); . = ALIGN (4); *(.bss .bss.* COMMON) _bss_end = ABSOLUTE(.); } > RWDATA .noinit (NOLOAD) : ALIGN(4) { . = ALIGN(4); *(.noinit .noinit.*) } > RWDATA /* must be last segment using RWTEXT */ .text_heap_start (NOLOAD) : ALIGN(4) { . = ALIGN (4); _text_heap_start = ABSOLUTE(.); } > RWTEXT /* must be last segment using RWDATA */ .heap_start (NOLOAD) : ALIGN(4) { . = ALIGN (4); _heap_start = ABSOLUTE(.); } > RWDATA }