MEMORY { FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x80000 RAM (rwx): ORIGIN = 0x20000000, LENGTH = 0x10000 } SECTIONS { .vector_table ORIGIN(FLASH) : { *(.vector_table .vector_table.*); } > FLASH .text : { *(.text .text.*); } > FLASH .rodata : { *(.rodata .rodata.*); } > FLASH .bss : ALIGN(4) { __bss_start = .; *(.bss .bss.*); . = ALIGN(4); __bss_end = .; } > RAM .data : ALIGN(4) { __data_start = .; *(.data .data.*); . = ALIGN(4); __data_end = .; } > RAM AT > FLASH __data_lma = LOADADDR(.data); /DISCARD/ : { *(.ARM.exidx .ARM.exidx.*); } /* Start the stack from the end of the RAM */ __stack_top = ORIGIN(RAM) + LENGTH(RAM); }