blob: 0cdfae8a4bc96f597616493cab4a7e4f861bf2a6 [file] [log] [blame]
ENTRY(_start)
MEMORY
{
ITCM (rx) : ORIGIN = 0x30000000, LENGTH = 64K
DTCM (rw) : ORIGIN = 0x34000000, LENGTH = 4M
}
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
PROVIDE( _stack_ptr = ORIGIN(DTCM) + LENGTH(DTCM) - 64 );
PROVIDE( _stack_start_sentinel = ORIGIN(DTCM) + LENGTH(DTCM) - STACK_SIZE );
PROVIDE( _stack_end_sentinel = ORIGIN(DTCM) + LENGTH(DTCM) - 64 );
SECTIONS
{
.text :
{
_stext = .;
KEEP(*(.text._start))
*(.text*)
_etext = .;
} > ITCM
.rodata :
{
. = ALIGN(64);
_srodata = .;
*(.rodata*)
_erodata = .;
} > DTCM
.data :
{
. = ALIGN(64);
_global_pointer = . + 0x800;
_sdata = .;
*(.data*)
_edata = .;
} > DTCM
.bss (NOLOAD) :
{
. = ALIGN(64);
_sbss = .;
*(.bss*)
*(COMMON)
_ebss = .;
} > DTCM
.heap (NOLOAD) :
{
. = ALIGN(64);
_sheap = .;
. = ORIGIN(DTCM) + LENGTH(DTCM) - STACK_SIZE - 63;
. = ALIGN(64);
_eheap = .;
} > DTCM
.stack ORIGIN(DTCM) + LENGTH(DTCM) - STACK_SIZE (NOLOAD) :
{
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(64);
_estack = .;
} > DTCM
_end = .;
}