lark1fq/bootloader/flash.ld
2025-02-03 20:41:09 +08:00

81 lines
1.5 KiB
Plaintext
Executable File

ENTRY(Reset_Handler)
StackSize = 0x4000; /* 16KB */
MEMORY
{
FLASH (rx) :ORIGIN = 0x08000000, LENGTH = 128K
RAM (xrw) :ORIGIN = 0x20000000, LENGTH = 112K
CCM (rw) :ORIGIN = 0x10000000, LENGTH = 64K - StackSize
}
_stack_top = ORIGIN(CCM) + LENGTH(CCM) + 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 = .;
} >RAM AT>FLASH
_data_ccm_load = LOADADDR(.data_ccm);
.data_ccm :
{
. = ALIGN(4);
_data_ccm_run = .;
*(.data_ccm)
*(.data_ccm*)
. = ALIGN(4);
_data_ccm_run_end = .;
} >CCM AT>FLASH
.bss (NOLOAD) :
{
. = ALIGN(4);
_bss_run = .;
*(.bss)
*(.bss.*)
. = ALIGN(4);
_bss_run_end = .;
} >RAM
.bss_ccm (NOLOAD) :
{
. = ALIGN(4);
_bss_ccm_run = .;
*(.bss_ccm)
*(.bss_ccm.*)
. = ALIGN(4);
_bss_ccm_run_end = .;
} >CCM
}