123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /* Define the flash max size */
- __max_flash_size = 1020k;
- __data_ram_size = 16k;
- __stack_ram_size = 4k;
- __comm_ram_size = 42k;
- __heap_ram_size = 52k;
- __ble_ram_size = 10k;
- __base = 0x10000000;
- __bram_vma = 0x11000;
- __heap_vma = __bram_vma + __ble_ram_size;
- __data_vma = __heap_vma + __heap_ram_size;
- __stack_vma = __data_vma + __data_ram_size;
- __comm_vma = __stack_vma + __stack_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
- bram : org = __bram_vma, len = __ble_ram_size
- 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 */
- . = ALIGN(4);
- __rt_init_start = .;
- KEEP(*(SORT(.rti_fn*)))
- __rt_init_end = .;
- . = ALIGN(4);
- PROVIDE(__ctors_start__ = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE(__ctors_end__ = .);
- /* section information for at server */
- . = ALIGN(4);
- __rtatcmdtab_start = .;
- KEEP(*(RtAtCmdTab))
- __rtatcmdtab_end = .;
- . = ALIGN(4);
- *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
- .comm __comm_vma : {
- . = ALIGN(4);
- KEEP(*(.vector))
- *(.irq.cache)
- *(.irq*)
- *ab32vg1_hal**.o (.text* .rodata*)
- *drv_gpio.o (.text* .rodata*)
- *drv_usart.o (.rodata*)
- EXCLUDE_FILE(*lib_a**.o *unwind*.o) *(.srodata*)
- *(.rela*)
- *(.data*)
- *(.sdata*)
- *(.com_text*)
- *(.text.ble_mqueue_get)
- *(.text.ble_mqueue_put)
- *(.text.os_memblock_get)
- } > comm AT > flash
- .bram __bram_vma (NOLOAD) : {
- *(.btmem.bthw)
- *(.btmem*)
- } > bram
- .bss (NOLOAD):
- {
- __bss_start = .;
- *(COMMON)
- *(.bss)
- *(.sbss)
- *(.buf*)
- __bss_end = .;
- } > data
- __bss_size = __bss_end - __bss_start;
- .stack (NOLOAD) : {
- __irq_stack_start = .;
- . = __stack_ram_size;
- __irq_stack = .;
- } > stack
- __irq_stack_size = __irq_stack - __irq_stack_start;
- .heap (NOLOAD) : {
- __heap_start = .;
- . = __heap_ram_size;
- __heap_end = .;
- } > heap
- .flash : {
- . = ALIGN(4);
- __fsymtab_start = .;
- KEEP(*(FSymTab))
- __fsymtab_end = .;
- . = ALIGN(4);
- __vsymtab_start = .;
- KEEP(*(VSymTab))
- __vsymtab_end = .;
- . = ALIGN(4);
- *(.text*)
- *(.rodata*)
- *(.srodata*)
- . = ALIGN(512);
- } > flash
- }
- /* Calc the lma */
- __bank_size = SIZEOF(.flash);
- __comm_lma = LOADADDR(.comm);
- __comm_size = SIZEOF(.comm);
- __ram1_lma = LOADADDR(.ram1);
- __ram1_size = SIZEOF(.ram1);
|