ENTRY(_start) MEMORY { RAM (rwx) : ORIGIN = 0x80000000, LENGTH = 16M } SECTIONS { .text : ALIGN(4) { *(.text*) } > RAM .rodata : ALIGN(8) { *(.rodata*) } > RAM .data : ALIGN(8) { _data_start = .; *(.data*) _data_end = .; } > RAM .bss : ALIGN(8) { _bss_start = .; *(.bss*) *(COMMON) _bss_end = .; } > RAM .sdata : ALIGN(8) { _sdata_start = .; *(.sdata*) _sdata_end = .; } > RAM .sbss : ALIGN(8) { _sbss_start = .; *(.sbss*) _sbss_end = .; } > RAM __global_pointer$ = _sdata_start + ((_sdata_end - _sdata_start + _sbss_end - _sbss_start) / 2); _heap_start = ALIGN(8); _stack_top = ORIGIN(RAM) + LENGTH(RAM); }