ENTRY(_start) MEMORY { TEXT (rx) : ORIGIN = 0x80000, LENGTH = 64K RO (r) : ORIGIN = 0x90000, LENGTH = 16K DATA (rw) : ORIGIN = 0x94000, LENGTH = 64K RAM (rw) : ORIGIN = 0xa4000, 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;