The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /* Linker script for mbed RDA5981C */
AnnaBridge 172:65be27845400 2
AnnaBridge 172:65be27845400 3 /* Linker script to configure memory regions. */
AnnaBridge 172:65be27845400 4 MEMORY
AnnaBridge 172:65be27845400 5 {
AnnaBridge 172:65be27845400 6 /* If ICache is enable, use virtual flash base address */
AnnaBridge 172:65be27845400 7 /* Use partition index: 0 */
AnnaBridge 172:65be27845400 8 FLASH (rx) : ORIGIN = 0x18001000, LENGTH = 2000K
AnnaBridge 172:65be27845400 9 /* Use partition index: 1 */
AnnaBridge 172:65be27845400 10 /* FLASH (rx) : ORIGIN = 0x181F5000, LENGTH = 2000K */
AnnaBridge 172:65be27845400 11
AnnaBridge 172:65be27845400 12 /* If ICache is disable, use real flash base address. Depends on macro: RDA_ICACHE_DISABLE */
AnnaBridge 172:65be27845400 13 /* Use partition index: 0 */
AnnaBridge 172:65be27845400 14 /* FLASH (rx) : ORIGIN = 0x14001000, LENGTH = 2000K */
AnnaBridge 172:65be27845400 15 /* Use partition index: 1 */
AnnaBridge 172:65be27845400 16 /* FLASH (rx) : ORIGIN = 0x141F5000, LENGTH = 2000K */
AnnaBridge 172:65be27845400 17
AnnaBridge 172:65be27845400 18 IRAM (rwx) : ORIGIN = 0x00100080, LENGTH = (128K - 0x80)
AnnaBridge 172:65be27845400 19 DRAM (rwx) : ORIGIN = 0x00180000, LENGTH = 160K
AnnaBridge 172:65be27845400 20 MACLIB_RAM(rwx) : ORIGIN = 0x40100000, LENGTH = 99K
AnnaBridge 172:65be27845400 21 AES_RAM(rwx) : ORIGIN = 0x40118C00, LENGTH = 1K
AnnaBridge 172:65be27845400 22 WLAN_RAM(rwx) : ORIGIN = 0x40119000, LENGTH = 28K
AnnaBridge 172:65be27845400 23 }
AnnaBridge 172:65be27845400 24
AnnaBridge 172:65be27845400 25 /* Linker script to place sections and symbol values. Should be used together
AnnaBridge 172:65be27845400 26 * with other linker script that defines memory regions FLASH and RAM.
AnnaBridge 172:65be27845400 27 * It references following symbols, which must be defined in code:
AnnaBridge 172:65be27845400 28 * Reset_Handler : Entry of reset handler
AnnaBridge 172:65be27845400 29 *
AnnaBridge 172:65be27845400 30 * It defines following symbols, which code can use without definition:
AnnaBridge 172:65be27845400 31 * __exidx_start
AnnaBridge 172:65be27845400 32 * __exidx_end
AnnaBridge 172:65be27845400 33 * __etext
AnnaBridge 172:65be27845400 34 * __data_start__
AnnaBridge 172:65be27845400 35 * __preinit_array_start
AnnaBridge 172:65be27845400 36 * __preinit_array_end
AnnaBridge 172:65be27845400 37 * __init_array_start
AnnaBridge 172:65be27845400 38 * __init_array_end
AnnaBridge 172:65be27845400 39 * __fini_array_start
AnnaBridge 172:65be27845400 40 * __fini_array_end
AnnaBridge 172:65be27845400 41 * __data_end__
AnnaBridge 172:65be27845400 42 * __bss_start__
AnnaBridge 172:65be27845400 43 * __bss_end__
AnnaBridge 172:65be27845400 44 * __end__
AnnaBridge 172:65be27845400 45 * end
AnnaBridge 172:65be27845400 46 * __HeapLimit
AnnaBridge 172:65be27845400 47 * __StackLimit
AnnaBridge 172:65be27845400 48 * __StackTop
AnnaBridge 172:65be27845400 49 * __stack
AnnaBridge 172:65be27845400 50 */
AnnaBridge 172:65be27845400 51 ENTRY(Reset_Handler)
AnnaBridge 172:65be27845400 52
AnnaBridge 172:65be27845400 53 SECTIONS
AnnaBridge 172:65be27845400 54 {
AnnaBridge 172:65be27845400 55 .text :
AnnaBridge 172:65be27845400 56 {
AnnaBridge 172:65be27845400 57 KEEP(*(.isr_vector))
AnnaBridge 172:65be27845400 58 *(.text*)
AnnaBridge 172:65be27845400 59
AnnaBridge 172:65be27845400 60 KEEP(*(.init))
AnnaBridge 172:65be27845400 61 KEEP(*(.fini))
AnnaBridge 172:65be27845400 62
AnnaBridge 172:65be27845400 63 /* .ctors */
AnnaBridge 172:65be27845400 64 *crtbegin.o(.ctors)
AnnaBridge 172:65be27845400 65 *crtbegin?.o(.ctors)
AnnaBridge 172:65be27845400 66 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
AnnaBridge 172:65be27845400 67 *(SORT(.ctors.*))
AnnaBridge 172:65be27845400 68 *(.ctors)
AnnaBridge 172:65be27845400 69
AnnaBridge 172:65be27845400 70 /* .dtors */
AnnaBridge 172:65be27845400 71 *crtbegin.o(.dtors)
AnnaBridge 172:65be27845400 72 *crtbegin?.o(.dtors)
AnnaBridge 172:65be27845400 73 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
AnnaBridge 172:65be27845400 74 *(SORT(.dtors.*))
AnnaBridge 172:65be27845400 75 *(.dtors)
AnnaBridge 172:65be27845400 76
AnnaBridge 172:65be27845400 77 *(.rodata*)
AnnaBridge 172:65be27845400 78
AnnaBridge 172:65be27845400 79 KEEP(*(.eh_frame*))
AnnaBridge 172:65be27845400 80 } > FLASH
AnnaBridge 172:65be27845400 81
AnnaBridge 172:65be27845400 82 .ARM.extab :
AnnaBridge 172:65be27845400 83 {
AnnaBridge 172:65be27845400 84 *(.ARM.extab* .gnu.linkonce.armextab.*)
AnnaBridge 172:65be27845400 85 } > FLASH
AnnaBridge 172:65be27845400 86
AnnaBridge 172:65be27845400 87 __exidx_start = .;
AnnaBridge 172:65be27845400 88 .ARM.exidx :
AnnaBridge 172:65be27845400 89 {
AnnaBridge 172:65be27845400 90 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
AnnaBridge 172:65be27845400 91 } > FLASH
AnnaBridge 172:65be27845400 92 __exidx_end = .;
AnnaBridge 172:65be27845400 93
AnnaBridge 172:65be27845400 94 __etext = .;
AnnaBridge 172:65be27845400 95
AnnaBridge 172:65be27845400 96 .data : AT (__etext)
AnnaBridge 172:65be27845400 97 {
AnnaBridge 172:65be27845400 98 __data_start__ = .;
AnnaBridge 172:65be27845400 99 Image$$RW_IRAM1$$Base = .;
AnnaBridge 172:65be27845400 100 *(vtable)
AnnaBridge 172:65be27845400 101 *(.data*)
AnnaBridge 172:65be27845400 102
AnnaBridge 172:65be27845400 103 . = ALIGN(4);
AnnaBridge 172:65be27845400 104 /* preinit data */
AnnaBridge 172:65be27845400 105 PROVIDE (__preinit_array_start = .);
AnnaBridge 172:65be27845400 106 KEEP(*(.preinit_array))
AnnaBridge 172:65be27845400 107 PROVIDE (__preinit_array_end = .);
AnnaBridge 172:65be27845400 108
AnnaBridge 172:65be27845400 109 . = ALIGN(4);
AnnaBridge 172:65be27845400 110 /* init data */
AnnaBridge 172:65be27845400 111 PROVIDE (__init_array_start = .);
AnnaBridge 172:65be27845400 112 KEEP(*(SORT(.init_array.*)))
AnnaBridge 172:65be27845400 113 KEEP(*(.init_array))
AnnaBridge 172:65be27845400 114 PROVIDE (__init_array_end = .);
AnnaBridge 172:65be27845400 115
AnnaBridge 172:65be27845400 116
AnnaBridge 172:65be27845400 117 . = ALIGN(4);
AnnaBridge 172:65be27845400 118 /* finit data */
AnnaBridge 172:65be27845400 119 PROVIDE (__fini_array_start = .);
AnnaBridge 172:65be27845400 120 KEEP(*(SORT(.fini_array.*)))
AnnaBridge 172:65be27845400 121 KEEP(*(.fini_array))
AnnaBridge 172:65be27845400 122 PROVIDE (__fini_array_end = .);
AnnaBridge 172:65be27845400 123
AnnaBridge 172:65be27845400 124 . = ALIGN(4);
AnnaBridge 172:65be27845400 125 /* All data end */
AnnaBridge 172:65be27845400 126 __data_end__ = .;
AnnaBridge 172:65be27845400 127
AnnaBridge 172:65be27845400 128 } > IRAM
AnnaBridge 172:65be27845400 129
AnnaBridge 172:65be27845400 130
AnnaBridge 172:65be27845400 131 .bss :
AnnaBridge 172:65be27845400 132 {
AnnaBridge 172:65be27845400 133 __bss_start__ = .;
AnnaBridge 172:65be27845400 134 *(.bss*)
AnnaBridge 172:65be27845400 135 *(COMMON)
AnnaBridge 172:65be27845400 136 __bss_end__ = .;
AnnaBridge 172:65be27845400 137 Image$$RW_IRAM1$$ZI$$Limit = . ;
AnnaBridge 172:65be27845400 138 } > IRAM
AnnaBridge 172:65be27845400 139
AnnaBridge 172:65be27845400 140 /* .stack_dummy section doesn't contains any symbols. It is only
AnnaBridge 172:65be27845400 141 * used for linker to calculate size of stack sections, and assign
AnnaBridge 172:65be27845400 142 * values to stack symbols later */
AnnaBridge 172:65be27845400 143 .stack_dummy :
AnnaBridge 172:65be27845400 144 {
AnnaBridge 172:65be27845400 145 *(.stack)
AnnaBridge 172:65be27845400 146 } > IRAM
AnnaBridge 172:65be27845400 147
AnnaBridge 172:65be27845400 148 /* Set stack top to end of IRAM, and stack limit move down by
AnnaBridge 172:65be27845400 149 * size of stack_dummy section */
AnnaBridge 172:65be27845400 150 __StackTop = ORIGIN(IRAM) + LENGTH(IRAM);
AnnaBridge 172:65be27845400 151 __StackLimit = __StackTop - SIZEOF(.stack_dummy);
AnnaBridge 172:65be27845400 152 PROVIDE(__stack = __StackTop);
AnnaBridge 172:65be27845400 153
AnnaBridge 172:65be27845400 154 /* Check if data + stack exceeds RAM limit */
AnnaBridge 172:65be27845400 155 ASSERT(__StackLimit >= __bss_end__, "region IRAM overflowed with stack")
AnnaBridge 172:65be27845400 156
AnnaBridge 172:65be27845400 157
AnnaBridge 172:65be27845400 158 .heap :
AnnaBridge 172:65be27845400 159 {
AnnaBridge 172:65be27845400 160 __end__ = .;
AnnaBridge 172:65be27845400 161 end = __end__;
AnnaBridge 172:65be27845400 162 *(.heap*)
AnnaBridge 172:65be27845400 163 __HeapLimit = .;
AnnaBridge 172:65be27845400 164 } > DRAM
AnnaBridge 172:65be27845400 165 PROVIDE(__sbrk_start = ADDR(.heap));
AnnaBridge 172:65be27845400 166 PROVIDE(__krbs_start = ADDR(.heap) + SIZEOF(.heap));
AnnaBridge 172:65be27845400 167
AnnaBridge 172:65be27845400 168 /* Code can explicitly ask for data to be
AnnaBridge 172:65be27845400 169 placed in these higher RAM banks where
AnnaBridge 172:65be27845400 170 they will be left uninitialized.
AnnaBridge 172:65be27845400 171 */
AnnaBridge 172:65be27845400 172 .SECTIONRESERVED1 (NOLOAD):
AnnaBridge 172:65be27845400 173 {
AnnaBridge 172:65be27845400 174 Image$$RW_IRAM2$$Base = . ;
AnnaBridge 172:65be27845400 175 *(SECTIONRESERVED1)
AnnaBridge 172:65be27845400 176 Image$$RW_IRAM2$$ZI$$Limit = .;
AnnaBridge 172:65be27845400 177 } > MACLIB_RAM
AnnaBridge 172:65be27845400 178
AnnaBridge 172:65be27845400 179 .AHB1SMEM0 (NOLOAD):
AnnaBridge 172:65be27845400 180 {
AnnaBridge 172:65be27845400 181 Image$$RW_IRAM3$$Base = . ;
AnnaBridge 172:65be27845400 182 *(AHB1SMEM0)
AnnaBridge 172:65be27845400 183 Image$$RW_IRAM3$$ZI$$Limit = .;
AnnaBridge 172:65be27845400 184 } > AES_RAM
AnnaBridge 172:65be27845400 185
AnnaBridge 172:65be27845400 186 .AHB1SMEM1 (NOLOAD):
AnnaBridge 172:65be27845400 187 {
AnnaBridge 172:65be27845400 188 Image$$RW_IRAM4$$Base = . ;
AnnaBridge 172:65be27845400 189 *(AHB1SMEM1)
AnnaBridge 172:65be27845400 190 Image$$RW_IRAM4$$ZI$$Limit = .;
AnnaBridge 172:65be27845400 191 } > WLAN_RAM
AnnaBridge 172:65be27845400 192 }