ENTRY(Reset_Handler) StackSize = 0x4000; /* 16KB */ MEMORY { /*FLASH (rx) :ORIGIN = 0x08000000, LENGTH = 128K*/ /*ITCM (xrw) :ORIGIN = 0x00000000, LENGTH = 64K*/ FLASH (xr) :ORIGIN = 0x00000000, LENGTH = 64K DTCM (xrw) :ORIGIN = 0x20000000, LENGTH = 128K - StackSize } _stack_top = ORIGIN(DTCM) + LENGTH(DTCM) + StackSize; SECTIONS { .isr_vector : { . = ALIGN(4); KEEP(*(.isr_vector)) . = ALIGN(4); } >FLASH .text : { . = ALIGN(4); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ . = ALIGN(4); } >FLASH .rodata : { . = ALIGN(4); *(.rodata) *(.rodata*) . = ALIGN(4); } >FLASH _data_load = LOADADDR(.data); .data : { . = ALIGN(4); _data_run = .; *(.data) *(.data.*) . = ALIGN(4); _data_run_end = .; } >DTCM AT>FLASH .bss (NOLOAD) : { . = ALIGN(4); _bss_run = .; *(.bss) *(.bss.*) . = ALIGN(4); _bss_run_end = .; } >DTCM }