MEMORY
{
/* Выделенный и изолированный регион в DDR для M7 */
m_interrupts (RX) : ORIGIN = 0x80000000, LENGTH = 0x00000400
m_text (RX) : ORIGIN = 0x80000400, LENGTH = 0x003BFC00 /* 3.75 MB под код */
m_data (RW) : ORIGIN = 0x803C0000, LENGTH = 0x00040000 /* 256 KB под данные/стек */
}
ENTRY(Reset_Handler)
SECTIONS
{
.interrupts : { . = ALIGN(4); KEEP(*(.isr_vector)) . = ALIGN(4); } > m_interrupts
.text : { . = ALIGN(4); *(.text*) *(.rodata*) . = ALIGN(4); } > m_text
.data : { . = ALIGN(4); *(.data*) . = ALIGN(4); } > m_data
.bss : { . = ALIGN(4); __bss_start__ = .; *(.bss*) *(COMMON) __bss_end__ = .; . = ALIGN(4); } > m_data
__StackTop = ORIGIN(m_data) + LENGTH(m_data);
PROVIDE(__stack = __StackTop);
}