/* This file is generated by nds_ldsag (version (2017-01-11) ). */ ENTRY(_start) SECTIONS { PROVIDE (__executable_start = 0x0); NDS_SAG_LMA_FLASH1 = 0x0 ; . = 0x0; ROM_BEGIN = .; .nds32_init : { KEEP(*(.nds32_init )) } .interp : { *(.interp ) } .hash : { *(.hash ) } .dynsym : { *(.dynsym ) } .dynstr : { *(.dynstr ) } .gnu.version : { *(.gnu.version ) } .gnu.version_d : { *(.gnu.version_d ) } .gnu.version_r : { *(.gnu.version_r ) } .rel.init : { *(.rel.init ) } .rela.init : { *(.rela.init ) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.* ) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.* ) } .rel.fini : { *(.rel.fini ) } .rela.fini : { *(.rela.fini ) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.* ) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.* ) } .rel.data.rel.ro : { *(.rel.data.rel.ro* ) } .rela.data.rel.ro : { *(.rel.data.rel.ro* ) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.* ) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.* ) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.* ) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.* ) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.* ) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.* ) } .rel.ctors : { *(.rel.ctors ) } .rela.ctors : { *(.rela.ctors ) } .rel.dtors : { *(.rel.dtors ) } .rela.dtors : { *(.rela.dtors ) } .rela.dyn : { *(rela.dyn ) *(.rela__libc_subfreeres ) *(.rela__libc_atexit ) *(.rela__libc_thread_subfreeres ) *(.rela.init_array ) *(.rela.fini_array ) } .rel.got : { *(.rel.got ) } .rela.got : { *(.rela.got ) } .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.* ) } .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.* ) } .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.* ) } .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.* ) } .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.* ) } .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.* ) } .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.* ) } .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.* ) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.* ) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.* ) } .rel.plt : { *(.rel.plt ) } .rela.plt : { *(.rela.plt ) } .init : { KEEP(*(.init )) } .plt : { *(.plt ) } .text : { *(.text .stub .text.* .gnu.linkonce.t.* ) KEEP(*(.text.*personality* )) *(.gnu.warning ) . = ALIGN(4); } .fini : { KEEP(*(.fini )) } .ex9.itable : { *(.ex9.itable ) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.* ) } .rodata1 : { *(.rodata1 ) } .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.* ) } .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.* ) } .eh_frame_hdr : { *(.eh_frame_hdr ) } . = ALIGN(4); __fsymtab_start = .; FSymTab : { KEEP(*(FSymTab )) } . = ALIGN(4); __fsymtab_end = .; . = ALIGN(4); __vsymtab_start = .; VSymTab : { KEEP(*(VSymTab )) } . = ALIGN(4); __vsymtab_end = .; . = ALIGN(4); __rt_init_start = .; .rti_fn.0 : { KEEP(*(.rti_fn.0 )) } .rti_fn.0.end : { KEEP(*(.rti_fn.0.end )) } .rti_fn.1 : { KEEP(*(.rti_fn.1 )) } .rti_fn.1.end : { KEEP(*(.rti_fn.1.end )) } .rti_fn.2 : { KEEP(*(.rti_fn.2 )) } .rti_fn.2.end : { KEEP(*(.rti_fn.2.end )) } .rti_fn.3 : { KEEP(*(.rti_fn.3 )) } .rti_fn.3.end : { KEEP(*(.rti_fn.3.end )) } .rti_fn.4 : { KEEP(*(.rti_fn.4 )) } .rti_fn.4.end : { KEEP(*(.rti_fn.4.end )) } .rti_fn.5 : { KEEP(*(.rti_fn.5 )) } .rti_fn.5.end : { KEEP(*(.rti_fn.5.end )) } .rti_fn.6 : { KEEP(*(.rti_fn.6 )) } .rti_fn.6.end : { KEEP(*(.rti_fn.6.end )) } .rti_fn.7 : { KEEP(*(.rti_fn.7 )) } .rti_fn.7.end : { KEEP(*(.rti_fn.7.end )) } . = ALIGN(4); __rt_init_end = .; ROM_SIZE = . - ROM_BEGIN; . = 0x200000; RAM_BEGIN = .; . = ALIGN(0x20); __rw_lma_start = LOADADDR (.eh_frame); __rw_vma_start = ADDR(.eh_frame); .eh_frame : AT(ALIGN(LOADADDR (.rti_fn.7.end) + SIZEOF (.rti_fn.7.end), 32)) { KEEP(*(.eh_frame )) } .gcc_except_table : AT(ALIGN(LOADADDR (.eh_frame) + SIZEOF (.eh_frame), ALIGNOF(.gcc_except_table))) { KEEP(*(.gcc_except_table )) *(.gcc_except_table.* ) } .tdata : AT(ALIGN(LOADADDR (.gcc_except_table) + SIZEOF (.gcc_except_table), ALIGNOF(.tdata))) { *(.tdata .tdata.* .gnu.linkonce.td.* ) } . = ALIGN(4); PROVIDE (__preinit_array_start = .); .preinit_array : AT(ALIGN(ALIGN(LOADADDR (.tdata) + SIZEOF (.tdata), ALIGNOF(.preinit_array)), 4)) { KEEP(*(.preinit_array )) } PROVIDE (__preinit_array_end = .); PROVIDE (__init_array_start = .); .init_array : AT(ALIGN(LOADADDR (.preinit_array) + SIZEOF (.preinit_array), ALIGNOF(.init_array))) { KEEP(*(.init_array )) } PROVIDE (__init_array_end = .); PROVIDE (__fini_array_start = .); .fini_array : AT(ALIGN(LOADADDR (.init_array) + SIZEOF (.init_array), ALIGNOF(.fini_array))) { KEEP(*(.fini_array )) } PROVIDE (__fini_array_end = .); .ctors : AT(ALIGN(LOADADDR (.fini_array) + SIZEOF (.fini_array), ALIGNOF(.ctors))) { KEEP(*crtbegin*.o(.ctors)) KEEP(*(EXCLUDE_FILE (*crtend*.o) .ctors)) KEEP(*(SORT(.ctors.* ))) KEEP(*(.ctors )) } .dtors : AT(ALIGN(LOADADDR (.ctors) + SIZEOF (.ctors), ALIGNOF(.dtors))) { KEEP(*crtbegin*.o(.dtors)) KEEP(*(EXCLUDE_FILE (*crtend*.o) .dtors)) KEEP(*(SORT(.dtors.* ))) KEEP(*(.dtors )) } .jcr : AT(ALIGN(LOADADDR (.dtors) + SIZEOF (.dtors), ALIGNOF(.jcr))) { KEEP(*(.jcr )) } .data.rel.ro : AT(ALIGN(LOADADDR (.jcr) + SIZEOF (.jcr), ALIGNOF(.data.rel.ro))) { *(.data.rel.ro.local ) *(.data.rel.ro* ) } .dynamic : AT(ALIGN(LOADADDR (.data.rel.ro) + SIZEOF (.data.rel.ro), ALIGNOF(.dynamic))) { *(.dynamic ) } .data : AT(ALIGN(LOADADDR (.dynamic) + SIZEOF (.dynamic), ALIGNOF(.data))) { *(.data .data.* .gnu.linkonce.d.* ) KEEP(*(.gnu.linkonce.d.*personality* )) SORT(CONSTRUCTORS) . = ALIGN(8); } .data1 : AT(ALIGN(LOADADDR (.data) + SIZEOF (.data), ALIGNOF(.data1))) { *(.data1 ) . = ALIGN(8); } . = ALIGN(4); .got : AT(ALIGN(ALIGN(LOADADDR (.data1) + SIZEOF (.data1), ALIGNOF(.got)), 4)) { *(.got.plt ) *(.got ) } .sdata_d : AT(ALIGN(LOADADDR (.got) + SIZEOF (.got), ALIGNOF(.sdata_d))) { *(.sdata_d .sdata_d.* ) } .sdata_w : AT(ALIGN(LOADADDR (.sdata_d) + SIZEOF (.sdata_d), ALIGNOF(.sdata_w))) { *(.sdata_w .sdata_w.* ) } .sdata_h : AT(ALIGN(LOADADDR (.sdata_w) + SIZEOF (.sdata_w), ALIGNOF(.sdata_h))) { *(.sdata_h .sdata_h.* ) } .sdata_b : AT(ALIGN(LOADADDR (.sdata_h) + SIZEOF (.sdata_h), ALIGNOF(.sdata_b))) { *(.sdata_b .sdata_b.* ) } .sdata_f : AT(ALIGN(LOADADDR (.sdata_b) + SIZEOF (.sdata_b), ALIGNOF(.sdata_f))) { *(.sdata_f .sdata_f.* ) } . = ALIGN(4); _edata = .; PROVIDE (edata = .); __bss_start = .; PROVIDE (__sbss_start = .); PROVIDE (___sbss_start = .); __rw_lma_end = LOADADDR (.tbss); .tbss : AT(ALIGN(ALIGN(LOADADDR (.sdata_f) + SIZEOF (.sdata_f), ALIGNOF(.tbss)), 4)) { *(.tbss .tbss.* .gnu.linkonce.tb.* ) *(.tcommon ) } .sbss_f : AT(ALIGN(LOADADDR (.tbss) + SIZEOF (.tbss), ALIGNOF(.sbss_f))) { *(.sbss_f .sbss_f.* ) *(.scommon_f .scommon_f.* ) } .sbss_b : AT(ALIGN(LOADADDR (.sbss_f) + SIZEOF (.sbss_f), ALIGNOF(.sbss_b))) { *(.sbss_b .sbss_b.* ) *(.scommon_b .scommon_b.* ) . = ALIGN(2); } .sbss_h : AT(ALIGN(LOADADDR (.sbss_b) + SIZEOF (.sbss_b), ALIGNOF(.sbss_h))) { *(.sbss_h .sbss_h.* ) *(.scommon_h .scommon_h.* ) . = ALIGN(4); } .sbss_w : AT(ALIGN(LOADADDR (.sbss_h) + SIZEOF (.sbss_h), ALIGNOF(.sbss_w))) { *(.sbss_w .sbss_w.* ) *(.scommon_w .scommon_w.* ) *(.dynsbss ) *(.scommon ) . = ALIGN(8); } .sbss_d : AT(ALIGN(LOADADDR (.sbss_w) + SIZEOF (.sbss_w), ALIGNOF(.sbss_d))) { *(.sbss_d .sbss_d.* ) *(.scommon_d .scommon_d.* ) } .bss : AT(ALIGN(LOADADDR (.sbss_d) + SIZEOF (.sbss_d), ALIGNOF(.bss))) { *(.dynbss ) *(.bss .bss.* .gnu.linkonce.b.* ) *(COMMON ) . = ALIGN(4); } PROVIDE (__sbss_end = .); PROVIDE (___sbss_end = .); . = ALIGN(4); _end = .; PROVIDE (end = .); PROVIDE (_stack = 0x24fff8); RAM_SIZE = . - RAM_BEGIN; .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .note.nds32 0 : { *(.note.nds32) *(.note.nds32.*) } .comment 0 : { *(.comment) } .debug 0 : { *(.debug) } .line 0 : { *(.line) } .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } } ASSERT((DEFINED (_RELAX_END_) ? ROM_SIZE : 0x0)<= 0x80000, "ROM OVERFLOW"); ASSERT((DEFINED (_RELAX_END_) ? RAM_SIZE : 0x0)<= 0x50000, "RAM OVERFLOW");