/* * GD32VF103 memory setup. */ MEMORY { flash : org = 0x08000000, len = 128k ram : org = 0x20000000, len = 32k } __ram_start__ = ORIGIN(ram); __ram_size__ = 32k; __ram_end__ = __ram_start__ + __ram_size__; SECTIONS { . = 0; _text = .; .text : { *(.text.startup.0) *(.text.startup.1) *(.text.startup.*) *(.text) *(.text.*) *(.gnu.linkonce.t.*) *(.rodata) *(.rodata.*) . = ALIGN(4); } > flash PROVIDE (_etext = .); _textdata = _etext; .stacks (NOLOAD) : { . = ALIGN(8); *(.main_stack) *(.process_stack.0) *(.process_stack.1) *(.process_stack.2) *(.process_stack.3) . = ALIGN(8); } > ram .data : { . = ALIGN(4); PROVIDE(_data = .); *(.gnu.linkonce.r.*) *(.data) . = ALIGN(4); *(.data.*) *(.gnu.linkonce.d.*) . = ALIGN(8); PROVIDE( __global_pointer$ = . + 0x800); *(.sdata .sdata.*) *(.gnu.linkonce.s.*) . = ALIGN(8); *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*) } > ram AT > flash . = ALIGN(4); PROVIDE(_edata = .); PROVIDE(_bss_start = .); .bss : { *(.sbss*) *(.gnu.linkonce.sb.*) *(.bss .bss.*) *(.gnu.linkonce.b.*) *(COMMON) . = ALIGN(4); } > ram . = ALIGN(8); PROVIDE(_bss_end = .); PROVIDE(end = .); PROVIDE(_end = .); } __heap_base__ = _end; __heap_end__ = __ram_end__;