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

137 lines
3.4 KiB
Plaintext
Raw Normal View History

/* Define the flash max size */
2020-12-25 17:23:26 +08:00
__max_flash_size = 1024k;
2020-12-25 17:23:26 +08:00
__data_ram_size = 8k;
2020-12-19 10:45:03 +08:00
__stack_ram_size = 4k;
2021-04-09 17:35:26 +08:00
__comm_ram_size = 42k;
__heap_ram_size = 70k;
__base = 0x10000000;
2020-12-19 10:45:03 +08:00
__data_vma = 0x11000;
__stack_vma = __data_vma + __data_ram_size;
__comm_vma = __stack_vma + __stack_ram_size;
__heap_vma = __comm_vma + __comm_ram_size;
__ram1_vma = 0x50000;
MEMORY
{
init : org = __base, len = 512
flash(rx) : org = __base + 512, len = __max_flash_size
comm(rx) : org = __comm_vma, len = __comm_ram_size
2020-12-19 10:45:03 +08:00
data : org = __data_vma, len = __data_ram_size
stack : org = __stack_vma, len = __stack_ram_size
heap : org = __heap_vma, len = __heap_ram_size
ram1(rx) : org = __ram1_vma, len = 0x7a00
}
SECTIONS
{
.init : {
*(.reset)
} > init
.ram1 __ram1_vma : {
/* section information for initial */
2021-06-22 14:15:06 +08:00
. = ALIGN(4);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
2021-01-27 14:37:57 +08:00
. = ALIGN(4);
PROVIDE(__ctors_start__ = .);
KEEP (*(SORT(.init_array.*)))
2021-05-13 10:22:09 +08:00
KEEP (*(.init_array*))
2021-01-27 14:37:57 +08:00
PROVIDE(__ctors_end__ = .);
. = ALIGN(4);
2021-04-09 17:35:26 +08:00
*save-restore.o (.text* .rodata*)
*libcpu*cpu*context_gcc.o (.text* .rodata*)
*libcpu*cpu*interrupt.o (.text* .rodata*)
*libcpu**.o (.rodata*)
*components*drivers*misc*pin.o(.text*)
*components*drivers*misc*adc.o(.text*)
. = ALIGN(4);
*src*ipc.o (.text* .rodata*)
*src*irq.o (.text* .rodata*)
*src*object.o (.text* .rodata*)
*src*thread.o (.text* .rodata*)
*src*timer.o (.text* .rodata*)
*src*mempool.o (.text* .rodata*)
*src*scheduler.o (.text* .rodata*)
*src*clock.o (.text* .rodata*)
*src*kservice.o (.text* .rodata*)
*src*device.o (.text* .rodata*)
*src*idle.o (.text* .rodata*)
*src*components.o (.text* .rodata*)
} > ram1 AT > flash
2021-01-27 14:37:57 +08:00
.comm __comm_vma : {
2021-01-20 19:28:35 +08:00
. = ALIGN(4);
2020-12-30 17:43:23 +08:00
KEEP(*(.vector))
2021-05-13 10:22:09 +08:00
*(.irq.cache)
2021-04-09 17:35:26 +08:00
*(.irq*)
2021-05-13 10:22:09 +08:00
*ab32vg1_hal**.o (.text* .rodata*)
*drv_gpio.o (.text* .rodata*)
*drv_usart.o (.rodata*)
EXCLUDE_FILE(*lib_a**.o *unwind*.o) *(.srodata*)
*(.rela*)
*(.data*)
2021-01-26 16:06:21 +08:00
*(.sdata*)
2021-05-13 10:22:09 +08:00
*(.com_text*)
} > comm AT > flash
.bss (NOLOAD):
{
__bss_start = .;
*(COMMON)
*(.bss)
*(.sbss)
*(.buf*)
__bss_end = .;
} > data
__bss_size = __bss_end - __bss_start;
.stack (NOLOAD) : {
__irq_stack_start = .;
2020-12-19 10:45:03 +08:00
. = __stack_ram_size;
__irq_stack = .;
} > stack
__irq_stack_size = __irq_stack - __irq_stack_start;
2020-12-25 17:23:26 +08:00
.heap (NOLOAD) : {
__heap_start = .;
. = __heap_ram_size;
__heap_end = .;
} > heap
2020-12-25 17:23:26 +08:00
.flash : {
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
2021-04-09 17:35:26 +08:00
. = ALIGN(4);
2020-12-25 17:23:26 +08:00
*(.text*)
*(.rodata*)
2021-01-20 19:28:35 +08:00
*(.srodata*)
2020-12-25 17:23:26 +08:00
. = ALIGN(512);
} > flash
}
/* Calc the lma */
__bank_size = SIZEOF(.flash);
__comm_lma = LOADADDR(.comm);
__comm_size = SIZEOF(.comm);
__ram1_lma = LOADADDR(.ram1);
2021-01-27 14:37:57 +08:00
__ram1_size = SIZEOF(.ram1);