📄 target.ld
字号:
STARTUP(../lib/vectors.o)ENTRY(_start)INPUT(../lib/extras.o)GROUP(../lib/libtarget.a libgcc.a libsupc++.a)MEMORY{ sdram : ORIGIN = 0x00000000, LENGTH = 0x02000000 devs : ORIGIN = 0x80000000, LENGTH = 0x00040000 sram0 : ORIGIN = 0x20000000, LENGTH = 0x00001000 sram1 : ORIGIN = 0x20001000, LENGTH = 0x00001000 sys_sram : ORIGIN = 0x80010000, LENGTH = 0x00008000 flash : ORIGIN = 0xFE000000, LENGTH = 0x01000000}SECTIONS{ .ramvec 0x00000000 (NOLOAD) : { __ramvec_start = ABSOLUTE (.); . = .; KEEP(*(.ramvec)); . = ALIGN(4); __ramvec_end = ABSOLUTE (.); __ramvec_size = ABSOLUTE (.) - ABSOLUTE(__ramvec_start); } > sdram .virtual_vec_table ALIGN(0x4) (NOLOAD) : { __virtual_vec_table_start = ABSOLUTE (.); . += 0x100; __virtual_vec_table_end = ABSOLUTE (.); __virtual_vec_table_size = ABSOLUTE (.) - ABSOLUTE(__virtual_vec_table_start); } > sdram .romvec 0x00400000 : { __romvec_start = ABSOLUTE (.); . = .; KEEP(*(.romvec)); . = ALIGN(4); __romvec_end = ABSOLUTE (.); __romvec_size = ABSOLUTE (.) - ABSOLUTE(__romvec_start); } > sdram .boot ALIGN(0x4) : { . = .; *(.boot*) . = ALIGN(4); } > sdram .text ALIGN(0x4) : { _stext = .; *(.text*) *(.gnu.warning) *(.gnu.linkonce*) *(.init) . = ALIGN(4); } > sdram _etext = .; PROVIDE (etext = .); .fini ALIGN(0x4) : { . = .; *(.fini) . = ALIGN(4); } > sdram .rodata1 ALIGN(0x4) : { . = .; *(.rodata1*) . = ALIGN(4); } > sdram .rodata ALIGN(0x4) : { . = .; *(.rodata*) . = ALIGN(4); } > sdram .fixup ALIGN(0x4) : { __FIXUP_START__ = ABSOLUTE(.); *(.fixup) . = ALIGN(4); __FIXUP_END__ = ABSOLUTE(.); } > sdram .gcc_except_table ALIGN(0x4) : { __EXCEPT_START__ = ABSOLUTE(.); *(.gcc_except_table) . = ALIGN(4); __EXCEPT_END__ = ABSOLUTE(.); } > sdram .data ALIGN(0x4) : { __ram_data_start = ABSOLUTE(.); *(.data*) __GOT1_START__ = ABSOLUTE(.); *(.got1) __GOT1_END__ = ABSOLUTE(.); . = ALIGN (4); __CTOR_LIST__ = ABSOLUTE(.); KEEP(*(SORT(.ctors*))); __CTOR_END__ = ABSOLUTE(.); __DTOR_LIST__ = ABSOLUTE(.); KEEP(*(SORT(.dtors*))) __DTOR_END__ = ABSOLUTE(.); . = ALIGN(4); KEEP(*( SORT (.ecos.table.*))); . = ALIGN (4); *( .2ram.*) ; __GOT2_START__ = ABSOLUTE(.); *(.got2) __GOT2_END__ = ABSOLUTE(.); __GOT_START = ABSOLUTE(.); _GLOBAL_OFFSET_TABLE_ = ABSOLUTE(. + 32768); _SDA_BASE_ = ABSOLUTE(.); *(.got.plt) *(.got) __GOT_END__ = ABSOLUTE(.); *(.dynamic) *(.eh_frame) __SDATA_START__ = ABSOLUTE(.); *(.sdata) *(.sdata.*) __SDATA2_START__ = ABSOLUTE(.); *(.sdata2*) . = ALIGN(4); __ram_data_end = ABSOLUTE(.); __ram_data_size = ABSOLUTE (.) - ABSOLUTE(__ram_data_start); } > sdram __rom_data_start = LOADADDR(.data); __rom_data_size = SIZEOF(.data); __rom_data_end = __rom_data_start + __rom_data_size; .16bytes ALIGN(0x10) (NOLOAD) : { . = ALIGN(0x10); . = .; *(.16bytes*) . = ALIGN(0x10); } > sdram .bss ALIGN(0x4) (NOLOAD) : { __bss_start = ABSOLUTE (.); . = .; *(.dynbss*) *(.bss*) *(COMMON) *(.sbss*) *(.scommon*) . = ALIGN(4); __bss_end = ABSOLUTE (.); __bss_size = ABSOLUTE (.) - ABSOLUTE(__bss_start); } > sdram .uninvar ALIGN(0x4) (NOLOAD) : { __uninvar_start = ABSOLUTE (.); . = .; *(.uninvar); . = ALIGN(4); __uninvar_end = ABSOLUTE (.); __uninvar_size = ABSOLUTE (.) - ABSOLUTE(__uninvar_start); } > sdram __heap1 = ALIGN (0x4); .stab 0 (NOLOAD) : { *(.stab) } .stabstr 0 (NOLOAD) : { *(.stabstr) } .comment 0 (NOLOAD) : { *(.comment) } . = ALIGN(0x4); _end = .; PROVIDE (end = .);}hal_virtual_vector_table = __virtual_vec_table_start;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -