rt-thread/bsp/bluetrum/ab32vg1-ab-prougen/link.lds

97 lines
2.0 KiB
Plaintext

/* Define the flash max size */
__max_flash_size = 768k;
__base = 0x10000000;
__comm_vma = 0x17000;
__max_comm_size = 76k;
MEMORY
{
init : org = __base, len = 512
flash(rx) : org = __base + 512, len = __max_flash_size
comm(rx) : org = __comm_vma, len = __max_comm_size
data : org = 0x11000, len = 16k
stack : org = 0x15000, len = 8k
aram : org = 0x50000, len = 16k
dram : org = 0x54000, len = 12k
eram : org = 0x57000, len = 0xa00
}
SECTIONS
{
.init : {
*(.reset)
} > init
.comm : {
KEEP(*(.vector))
*(.com_text*)
*(.text*)
*(.rodata*)
*(.com_rodata*)
*(.rela*)
*(.data*)
*(.sdata*)
LONG(0)
} > comm AT > flash
.rti : {
. = ALIGN(4);
/* section information for initial */
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
} > comm AT > flash
.flash : {
. = ALIGN(512);
} > flash
.bss (NOLOAD):
{
__bss_start = .;
*(COMMON)
*(.bss)
*(.sbss)
*(.buf*)
__bss_end = .;
} > data
__bss_size = __bss_end - __bss_start;
.stack (NOLOAD) : {
__irq_stack_start = .;
. = 0x2000;
__irq_stack = .;
} > stack
__irq_stack_size = __irq_stack - __irq_stack_start;
.code_aecram (NOLOAD): {
__aram_start = .;
} > aram
.code_decram (NOLOAD): {
} > dram
.code_encram (NOLOAD): {
__eram_start = .;
. = 0xa00;
__eram_end = .;
} > eram
}
/* Calc the lma */
__bank_size = SIZEOF(.flash);
__comm_lma = LOADADDR(.comm);
__comm_size = SIZEOF(.comm) + SIZEOF(.rti);