📄 target.ld
字号:
OUTPUT_FORMAT("elf32-littlescore", "elf32-bigscore", "elf32-littlescore")OUTPUT_ARCH(score)STARTUP(vectors.o)ENTRY(reset_vector)INPUT(extras.o) GROUP(-lsupc++ -ltarget -lextras -lc -lm -lgcc ) __ram_data_end = .; PROVIDE (__ram_data_end = .);MEMORY{ ram : ORIGIN = 0xa0000000, LENGTH = 0x1000000}SECTIONS{ .exception 0xa00001fc : { KEEP(*(.exception_vec)) KEEP(*(.sec_hal_interrupt_handlers)) } > ram .virtual_vec_table ALIGN(0x4) : { __virtual_vec_table_start = ABSOLUTE (.); . += 0x100; __virtual_vec_table_end = ABSOLUTE (.); __virtual_vec_table_size = ABSOLUTE (.) - ABSOLUTE(__virtual_vec_table_start); } > ram .rom_vectors 0xa0001000 : { KEEP (*(.reset_vector)) } > ram .interp ALIGN (0x4) : { *(.interp) } > ram .hash : AT ((LOADADDR (.interp) + SIZEOF (.interp) + 4 - 1) & ~ (4 - 1)) { *(.hash) } > ram .dynsym : AT ((LOADADDR (.hash) + SIZEOF (.hash) + 4 - 1) & ~ (4 - 1)) { *(.dynsym) } > ram .dynstr : AT ((LOADADDR (.dynsym) + SIZEOF (.dynsym) + 4 - 1) & ~ (4 - 1)) { *(.dynstr) } > ram .gnu.version : AT ((LOADADDR (.dynstr) + SIZEOF (.dynstr) + 4 - 1) & ~ (4 - 1)) { *(.gnu.version) } > ram .gnu.version_d : AT ((LOADADDR (.gnu.version) + SIZEOF (.gnu.version) + 4 - 1) & ~ (4 - 1)) { *(.gnu.version_d) } > ram .gnu.version_r : AT ((LOADADDR (.gnu.version_d) + SIZEOF (.gnu.version_d) + 4 - 1) & ~ (4 - 1)) { *(.gnu.version_r) } > ram .plt : AT ((LOADADDR (.gnu.version_r) + SIZEOF (.gnu.version_r) + 4 - 1) & ~ (4 - 1)) { *(.plt) } > ram .rel.text : { *(.rel.text) *(.rel.text.*) *(.rel.gnu.linkonce.t*) } > ram .rela.text : { *(.rela.text) *(.rela.text.*) *(.rela.gnu.linkonce.t*) } > ram .rel.data : { *(.rel.data) *(.rel.data.*) *(.rel.gnu.linkonce.d*) } > ram .rela.data : { *(.rela.data) *(.rela.data.*) *(.rela.gnu.linkonce.d*) } > ram .rel.rodata : { *(.rel.rodata) *(.rel.rodata.*) *(.rel.gnu.linkonce.r*) } > ram .rela.rodata : { *(.rela.rodata) *(.rela.rodata.*) *(.rela.gnu.linkonce.r*) } > ram .rel.got : { *(.rel.got) } > ram .rela.got : { *(.rela.got) } > ram .rel.ctors : { *(.rel.ctors) } > ram .rela.ctors : { *(.rela.ctors) } > ram .rel.dtors : { *(.rel.dtors) } > ram .rela.dtors : { *(.rela.dtors) } > ram .rel.init : { *(.rel.init) } > ram .rela.init : { *(.rela.init) } > ram .rel.fini : { *(.rel.fini) } > ram .rela.fini : { *(.rela.fini) } > ram .rel.bss : { *(.rel.bss) } > ram .rela.bss : { *(.rela.bss) } > ram .rel.plt : { *(.rel.plt) } > ram .rela.plt : { *(.rela.plt) } > ram .rel.dyn : { *(.rel.dyn) } > ram .init ALIGN (0x4) : { . = .; KEEP (*(.init)) } > ram .text ALIGN (0x1) : { _stext = .; _ftext = . ; *(.text .stub .text.* .gnu.linkonce.t.*) *(.exit) *(.abort) *(.gnu.warning) *(.glue_7t) *(.glue_7) } > ram =0 _etext = .; PROVIDE (etext = .); PROVIDE (__etext = .); .fini ALIGN (0x1) : { . = .; KEEP (*(.fini)) } > ram .ctors ALIGN (0x1) : { . = .; KEEP (*crtbegin.o(.ctors)) __CTOR_LIST__ = .; PROVIDE (__CTOR_LIST__ = .); KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) __CTOR_END__ = .; PROVIDE (__CTOR_END__ = .); } > ram .dtors ALIGN (0x1) : { . = .; KEEP (*crtbegin.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } > ram .devtab ALIGN (0x1) : { . = .; KEEP(*( SORT (.ecos.table.*))) ; } > ram .rodata ALIGN (0x1) : { . = .; *(.rodata .rodata.* .gnu.linkonce.r.*) } > ram .rodata1 ALIGN (0x8) : { . = .; *(.rodata1) } > ram .vsr_table ALIGN (0x1) : { . = .; *(.vsr_table) } > ram .rodata1 ALIGN (0x1) : { . = .; *(.rodata1) } > ram .fixup ALIGN (0x1) : { . = .; *(.fixup) } > ram .gcc_except_table ALIGN (0x1) : { . = .; *(.gcc_except_table) } > ram .data ALIGN (0x8) : { __ram_data_start = ABSOLUTE (.); _fdata = . ; __data_start = . ; *(.data .data.* .gnu.linkonce.d.*) *( .2ram.*) SORT(CONSTRUCTORS) } > ram __rom_data_start = LOADADDR (.data); .data1 ALIGN (0x8) : { . = .; *(.data1) } > ram .sdata ALIGN (0x4) : { . = .; _sdata_begin = . ; *(.sdata .sdata.* .gnu.linkonce.s.*) } > ram .sbss ALIGN (0x8) : { . = ALIGN(32 / 8); __bss_start = .; __bss_start__ = .; PROVIDE (__sbss_start = .); PROVIDE (___sbss_start = .); *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) PROVIDE (__sbss_end = .); PROVIDE (___sbss_end = .); } > ram _gp = _sdata_begin + 0x4000; .bss ALIGN (0x4) : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) . = ALIGN(32 / 8); } > ram . = ALIGN(32 / 8); _end = .; _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; PROVIDE (end = .); __heap1 = ALIGN (0x8); . = ALIGN(4); total_end = .; PROVIDE (totalend = .); .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) } .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) }}hal_virtual_vector_table = __virtual_vec_table_start;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -