ENTRY(_start) MEMORY { TEXT (rx) : ORIGIN = 0x80000, LENGTH = 128K RO (r) : ORIGIN = 0xa0000, LENGTH = 128K DATA (rw) : ORIGIN = 0x100000, LENGTH = 512K RAM (rw) : ORIGIN = 0x180000, LENGTH = 64M } SECTIONS { .text : { KEEP(*(.text.boot)) *(.text) } >TEXT .rodata : { *(.rodata) } >RO .data : { *(.data) } >DATA .bss : { __bss_start = .; *(.bss) __bss_end = .; } >DATA __stack_end = ORIGIN(RAM) + LENGTH(RAM); } __heap_start = ORIGIN(RAM); __heap_end = ORIGIN(RAM) + 32M; __bss_size = (__bss_end - __bss_start)>>3;