/***********************************************************/
/* Configure memory regions */
MEMORY
{
IROM (rwx) : ORIGIN = 0x08000000, LENGTH = 0x00100000
SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x0001A000
SYSSTACK (rwx) : ORIGIN = 0x2001A000, LENGTH = 0x2000
}
ENTRY(OsResetVector)
SECTIONS
{
.resetzone :
{
__text_section_start = .;
KEEP(*(.reset))
} > IROM
.text :
{
. = ALIGN(4);
__text_start__ = .;
*(.text*)
*(.rodata*)
*(.kernel*)
*(.rel*)
} > IROM
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
. = ALIGN(4);
} > IROM
.data : AT(LOADADDR(.ARM.exidx) + SIZEOF(.ARM.exidx))
{
__text_end__ = LOADADDR(.data);
__data_start__ = .;
KEEP(*(VECTOR))
*(vtable)
*(.data*)
KEEP(*( SORT (.uniproton.table.*)));
. = ALIGN(4);
__data_end__ = .;
} > SRAM
.bss :
{
. = ALIGN(4);
__bss_start__ = .;
g_bssStart = .;
*(.bss*)
*(COMMON)
. = ALIGN(4);
__bss_end__ = .;
g_bssEnd = .;
} > SRAM
.osStack :
{
g_stackStart = .;
. = . + 0x2000;
g_stackEnd = .;
} > SYSSTACK
.heap (COPY):
{
__end__ = .;
end = __end__;
*(.heap*)
__HeapLimit = .;
} > SYSSTACK
}
/***********************************************************/