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:
Anna Bridge
Date:
Fri Jun 22 15:38:59 2018 +0100
Revision:
169:a7c7b631e539
Parent:
165:d1b4690b3f8b
Child:
171:3a7713b1edbc
mbed library. Release version 162

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 165:d1b4690b3f8b 1 /* Linker script for mbed VK_RZ_A1H */
AnnaBridge 165:d1b4690b3f8b 2
AnnaBridge 165:d1b4690b3f8b 3 /* Linker script to configure memory regions. */
AnnaBridge 165:d1b4690b3f8b 4 /*
AnnaBridge 165:d1b4690b3f8b 5 #ifdef RUN_FROM_SDRAM
AnnaBridge 165:d1b4690b3f8b 6 MEMORY
AnnaBridge 165:d1b4690b3f8b 7 {
AnnaBridge 165:d1b4690b3f8b 8 L_TTB (rw) : ORIGIN = 0x20000000, LENGTH = 0x00004000
AnnaBridge 165:d1b4690b3f8b 9 RAM (rwx) : ORIGIN = 0x08000000, LENGTH = 0x01E00000
AnnaBridge 165:d1b4690b3f8b 10 RAM_NC (rwx) : ORIGIN = 0x49E00000, LENGTH = 0x00200000
AnnaBridge 165:d1b4690b3f8b 11 SRAM (rwx) : ORIGIN = 0x200A0000, LENGTH = 0x00960000
AnnaBridge 165:d1b4690b3f8b 12 }
AnnaBridge 165:d1b4690b3f8b 13 REGION_ALIAS("SFLASH", RAM);
AnnaBridge 165:d1b4690b3f8b 14 TTBOFFSET = 1M;
AnnaBridge 165:d1b4690b3f8b 15
AnnaBridge 165:d1b4690b3f8b 16 #elif defined (RUN_FROM_SRAM)
AnnaBridge 165:d1b4690b3f8b 17 MEMORY
AnnaBridge 165:d1b4690b3f8b 18 {
AnnaBridge 165:d1b4690b3f8b 19 L_TTB (rw) : ORIGIN = 0x20000000, LENGTH = 0x00004000
AnnaBridge 165:d1b4690b3f8b 20 RAM (rwx) : ORIGIN = 0x200A0000, LENGTH = 0x00860000
AnnaBridge 165:d1b4690b3f8b 21 RAM_NC (rwx) : ORIGIN = 0x60900000, LENGTH = 0x00100000
AnnaBridge 165:d1b4690b3f8b 22 SDRAM (rwx) : ORIGIN = 0x08000000, LENGTH = 0x02000000
AnnaBridge 165:d1b4690b3f8b 23 }
AnnaBridge 165:d1b4690b3f8b 24 REGION_ALIAS("SFLASH", RAM);
AnnaBridge 165:d1b4690b3f8b 25 TTBOFFSET = 1M;
AnnaBridge 165:d1b4690b3f8b 26 #else
AnnaBridge 165:d1b4690b3f8b 27 */
AnnaBridge 165:d1b4690b3f8b 28 MEMORY
AnnaBridge 165:d1b4690b3f8b 29 {
AnnaBridge 165:d1b4690b3f8b 30 ROM (rx) : ORIGIN = 0x00000000, LENGTH = 0x02000000
AnnaBridge 165:d1b4690b3f8b 31 SFLASH (rx) : ORIGIN = 0x18020000, LENGTH = 0x01FE0000
AnnaBridge 165:d1b4690b3f8b 32 L_TTB (rw) : ORIGIN = 0x20000000, LENGTH = 0x00004000
AnnaBridge 165:d1b4690b3f8b 33 RAM (rwx) : ORIGIN = 0x20020000, LENGTH = 0x008E0000
AnnaBridge 165:d1b4690b3f8b 34 RAM_NC (rwx) : ORIGIN = 0x20900000, LENGTH = 0x00100000
AnnaBridge 165:d1b4690b3f8b 35 SDRAM (rwx) : ORIGIN = 0x08000000, LENGTH = 0x02000000
AnnaBridge 165:d1b4690b3f8b 36 }
AnnaBridge 165:d1b4690b3f8b 37 /*#endif*/
AnnaBridge 165:d1b4690b3f8b 38
AnnaBridge 165:d1b4690b3f8b 39 /* Linker script to place sections and symbol values. Should be used together
AnnaBridge 165:d1b4690b3f8b 40 * with other linker script that defines memory regions FLASH and RAM.
AnnaBridge 165:d1b4690b3f8b 41 * It references following symbols, which must be defined in code:
AnnaBridge 165:d1b4690b3f8b 42 * Reset_Handler : Entry of reset handler
AnnaBridge 165:d1b4690b3f8b 43 *
AnnaBridge 165:d1b4690b3f8b 44 * It defines following symbols, which code can use without definition:
AnnaBridge 165:d1b4690b3f8b 45 * __exidx_start
AnnaBridge 165:d1b4690b3f8b 46 * __exidx_end
AnnaBridge 165:d1b4690b3f8b 47 * __etext
AnnaBridge 165:d1b4690b3f8b 48 * __data_start__
AnnaBridge 165:d1b4690b3f8b 49 * __preinit_array_start
AnnaBridge 165:d1b4690b3f8b 50 * __preinit_array_end
AnnaBridge 165:d1b4690b3f8b 51 * __init_array_start
AnnaBridge 165:d1b4690b3f8b 52 * __init_array_end
AnnaBridge 165:d1b4690b3f8b 53 * __fini_array_start
AnnaBridge 165:d1b4690b3f8b 54 * __fini_array_end
AnnaBridge 165:d1b4690b3f8b 55 * __data_end__
AnnaBridge 165:d1b4690b3f8b 56 * __bss_start__
AnnaBridge 165:d1b4690b3f8b 57 * __bss_end__
AnnaBridge 165:d1b4690b3f8b 58 * __end__
AnnaBridge 165:d1b4690b3f8b 59 * end
AnnaBridge 165:d1b4690b3f8b 60 * __HeapLimit
AnnaBridge 165:d1b4690b3f8b 61 * __StackLimit
AnnaBridge 165:d1b4690b3f8b 62 * __StackTop
AnnaBridge 165:d1b4690b3f8b 63 * __stack
AnnaBridge 165:d1b4690b3f8b 64 */
AnnaBridge 165:d1b4690b3f8b 65 ENTRY(Reset_Handler)
AnnaBridge 165:d1b4690b3f8b 66
AnnaBridge 165:d1b4690b3f8b 67 SECTIONS
AnnaBridge 165:d1b4690b3f8b 68 {
AnnaBridge 165:d1b4690b3f8b 69 .text :
AnnaBridge 165:d1b4690b3f8b 70 {
AnnaBridge 165:d1b4690b3f8b 71
AnnaBridge 165:d1b4690b3f8b 72 Image$$VECTORS$$Base = .;
AnnaBridge 165:d1b4690b3f8b 73 KEEP(*(.isr_vector))
AnnaBridge 165:d1b4690b3f8b 74 *(SVC_TABLE)
AnnaBridge 165:d1b4690b3f8b 75 *(.text*)
AnnaBridge 165:d1b4690b3f8b 76
AnnaBridge 165:d1b4690b3f8b 77 KEEP(*(.init))
AnnaBridge 165:d1b4690b3f8b 78 KEEP(*(.fini))
AnnaBridge 165:d1b4690b3f8b 79
AnnaBridge 165:d1b4690b3f8b 80 /* .ctors */
AnnaBridge 165:d1b4690b3f8b 81 *crtbegin.o(.ctors)
AnnaBridge 165:d1b4690b3f8b 82 *crtbegin?.o(.ctors)
AnnaBridge 165:d1b4690b3f8b 83 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
AnnaBridge 165:d1b4690b3f8b 84 *(SORT(.ctors.*))
AnnaBridge 165:d1b4690b3f8b 85 *(.ctors)
AnnaBridge 165:d1b4690b3f8b 86
AnnaBridge 165:d1b4690b3f8b 87 /* .dtors */
AnnaBridge 165:d1b4690b3f8b 88 *crtbegin.o(.dtors)
AnnaBridge 165:d1b4690b3f8b 89 *crtbegin?.o(.dtors)
AnnaBridge 165:d1b4690b3f8b 90 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
AnnaBridge 165:d1b4690b3f8b 91 *(SORT(.dtors.*))
AnnaBridge 165:d1b4690b3f8b 92 *(.dtors)
AnnaBridge 165:d1b4690b3f8b 93 Image$$VECTORS$$Limit = .;
AnnaBridge 165:d1b4690b3f8b 94
AnnaBridge 165:d1b4690b3f8b 95 Image$$RO_DATA$$Base = .;
AnnaBridge 165:d1b4690b3f8b 96 *(.rodata*)
AnnaBridge 165:d1b4690b3f8b 97 Image$$RO_DATA$$Limit = .;
AnnaBridge 165:d1b4690b3f8b 98
AnnaBridge 165:d1b4690b3f8b 99 KEEP(*(.eh_frame*))
AnnaBridge 165:d1b4690b3f8b 100 } > SFLASH
AnnaBridge 165:d1b4690b3f8b 101
AnnaBridge 165:d1b4690b3f8b 102 .ARM.extab :
AnnaBridge 165:d1b4690b3f8b 103 {
AnnaBridge 165:d1b4690b3f8b 104 *(.ARM.extab* .gnu.linkonce.armextab.*)
AnnaBridge 165:d1b4690b3f8b 105 } > SFLASH
AnnaBridge 165:d1b4690b3f8b 106
AnnaBridge 165:d1b4690b3f8b 107 __exidx_start = .;
AnnaBridge 165:d1b4690b3f8b 108 .ARM.exidx :
AnnaBridge 165:d1b4690b3f8b 109 {
AnnaBridge 165:d1b4690b3f8b 110 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
AnnaBridge 165:d1b4690b3f8b 111 } > SFLASH
AnnaBridge 165:d1b4690b3f8b 112 __exidx_end = .;
AnnaBridge 165:d1b4690b3f8b 113
AnnaBridge 165:d1b4690b3f8b 114
AnnaBridge 165:d1b4690b3f8b 115 .copy.table :
AnnaBridge 165:d1b4690b3f8b 116 {
AnnaBridge 165:d1b4690b3f8b 117 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 118 __copy_table_start__ = .;
AnnaBridge 165:d1b4690b3f8b 119 LONG (__etext)
AnnaBridge 165:d1b4690b3f8b 120 LONG (__data_start__)
AnnaBridge 165:d1b4690b3f8b 121 LONG (__data_end__ - __data_start__)
AnnaBridge 165:d1b4690b3f8b 122 LONG (__etext2)
AnnaBridge 165:d1b4690b3f8b 123 LONG (__nc_data_start)
AnnaBridge 165:d1b4690b3f8b 124 LONG (__nc_data_end - __nc_data_start)
AnnaBridge 165:d1b4690b3f8b 125 __copy_table_end__ = .;
AnnaBridge 165:d1b4690b3f8b 126 } > SFLASH
AnnaBridge 165:d1b4690b3f8b 127
AnnaBridge 165:d1b4690b3f8b 128 .zero.table :
AnnaBridge 165:d1b4690b3f8b 129 {
AnnaBridge 165:d1b4690b3f8b 130 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 131 __zero_table_start__ = .;
AnnaBridge 165:d1b4690b3f8b 132 LONG (__bss_start__)
AnnaBridge 165:d1b4690b3f8b 133 LONG (__bss_end__ - __bss_start__)
AnnaBridge 165:d1b4690b3f8b 134 LONG (__nc_bss_start)
AnnaBridge 165:d1b4690b3f8b 135 LONG (__nc_bss_end - __nc_bss_start)
AnnaBridge 165:d1b4690b3f8b 136 __zero_table_end__ = .;
AnnaBridge 165:d1b4690b3f8b 137 } > SFLASH
AnnaBridge 165:d1b4690b3f8b 138
AnnaBridge 165:d1b4690b3f8b 139 __etext = .;
AnnaBridge 165:d1b4690b3f8b 140
AnnaBridge 165:d1b4690b3f8b 141 .ttb :
AnnaBridge 165:d1b4690b3f8b 142 {
AnnaBridge 165:d1b4690b3f8b 143 Image$$TTB$$ZI$$Base = .;
AnnaBridge 165:d1b4690b3f8b 144 . += 0x00004000;
AnnaBridge 165:d1b4690b3f8b 145 Image$$TTB$$ZI$$Limit = .;
AnnaBridge 165:d1b4690b3f8b 146 } > L_TTB
AnnaBridge 165:d1b4690b3f8b 147
AnnaBridge 165:d1b4690b3f8b 148 .data : AT (__etext)
AnnaBridge 165:d1b4690b3f8b 149 {
AnnaBridge 165:d1b4690b3f8b 150 Image$$RW_DATA$$Base = .;
AnnaBridge 165:d1b4690b3f8b 151 __data_start__ = .;
AnnaBridge 165:d1b4690b3f8b 152 *(vtable)
AnnaBridge 165:d1b4690b3f8b 153 *(.data*)
AnnaBridge 165:d1b4690b3f8b 154 Image$$RW_DATA$$Limit = .;
AnnaBridge 165:d1b4690b3f8b 155
AnnaBridge 165:d1b4690b3f8b 156 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 157 /* preinit data */
AnnaBridge 165:d1b4690b3f8b 158 PROVIDE (__preinit_array_start = .);
AnnaBridge 165:d1b4690b3f8b 159 KEEP(*(.preinit_array))
AnnaBridge 165:d1b4690b3f8b 160 PROVIDE (__preinit_array_end = .);
AnnaBridge 165:d1b4690b3f8b 161
AnnaBridge 165:d1b4690b3f8b 162 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 163 /* init data */
AnnaBridge 165:d1b4690b3f8b 164 PROVIDE (__init_array_start = .);
AnnaBridge 165:d1b4690b3f8b 165 KEEP(*(SORT(.init_array.*)))
AnnaBridge 165:d1b4690b3f8b 166 KEEP(*(.init_array))
AnnaBridge 165:d1b4690b3f8b 167 PROVIDE (__init_array_end = .);
AnnaBridge 165:d1b4690b3f8b 168
AnnaBridge 165:d1b4690b3f8b 169
AnnaBridge 165:d1b4690b3f8b 170 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 171 /* finit data */
AnnaBridge 165:d1b4690b3f8b 172 PROVIDE (__fini_array_start = .);
AnnaBridge 165:d1b4690b3f8b 173 KEEP(*(SORT(.fini_array.*)))
AnnaBridge 165:d1b4690b3f8b 174 KEEP(*(.fini_array))
AnnaBridge 165:d1b4690b3f8b 175 PROVIDE (__fini_array_end = .);
AnnaBridge 165:d1b4690b3f8b 176
AnnaBridge 165:d1b4690b3f8b 177 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 178 /* All data end */
AnnaBridge 165:d1b4690b3f8b 179 __data_end__ = .;
AnnaBridge 165:d1b4690b3f8b 180
AnnaBridge 165:d1b4690b3f8b 181 } > RAM
AnnaBridge 165:d1b4690b3f8b 182
AnnaBridge 165:d1b4690b3f8b 183 .bss ALIGN(0x10):
AnnaBridge 165:d1b4690b3f8b 184 {
AnnaBridge 165:d1b4690b3f8b 185 Image$$RW_IRAM1$$Base = .;
AnnaBridge 165:d1b4690b3f8b 186 __bss_start__ = .;
AnnaBridge 165:d1b4690b3f8b 187 *(.bss*)
AnnaBridge 165:d1b4690b3f8b 188 *(COMMON)
AnnaBridge 165:d1b4690b3f8b 189 __bss_end__ = .;
AnnaBridge 165:d1b4690b3f8b 190 Image$$RW_IRAM1$$Limit = .;
AnnaBridge 165:d1b4690b3f8b 191 } > RAM
AnnaBridge 165:d1b4690b3f8b 192
AnnaBridge 165:d1b4690b3f8b 193 .heap :
AnnaBridge 165:d1b4690b3f8b 194 {
AnnaBridge 165:d1b4690b3f8b 195 __end__ = .;
AnnaBridge 165:d1b4690b3f8b 196 end = __end__;
AnnaBridge 165:d1b4690b3f8b 197 *(.heap*)
AnnaBridge 165:d1b4690b3f8b 198 } > RAM
AnnaBridge 165:d1b4690b3f8b 199
AnnaBridge 165:d1b4690b3f8b 200 /* .stack_dummy section doesn't contains any symbols. It is only
AnnaBridge 165:d1b4690b3f8b 201 * used for linker to calculate size of stack sections, and assign
AnnaBridge 165:d1b4690b3f8b 202 * values to stack symbols later */
AnnaBridge 165:d1b4690b3f8b 203 .stack_dummy (COPY):
AnnaBridge 165:d1b4690b3f8b 204 {
AnnaBridge 165:d1b4690b3f8b 205 *(.stack*)
AnnaBridge 165:d1b4690b3f8b 206 } > RAM
AnnaBridge 165:d1b4690b3f8b 207
AnnaBridge 165:d1b4690b3f8b 208 /* Set stack top to end of RAM, and stack limit move down by
AnnaBridge 165:d1b4690b3f8b 209 * size of stack_dummy section */
AnnaBridge 165:d1b4690b3f8b 210 __StackTop = ORIGIN(RAM) + LENGTH(RAM);
AnnaBridge 165:d1b4690b3f8b 211 _estack = __StackTop;
AnnaBridge 165:d1b4690b3f8b 212 __StackLimit = __StackTop - SIZEOF(.stack_dummy);
AnnaBridge 165:d1b4690b3f8b 213 __HeapLimit = __StackLimit;
AnnaBridge 165:d1b4690b3f8b 214 PROVIDE(__stack = __StackTop);
AnnaBridge 165:d1b4690b3f8b 215
AnnaBridge 165:d1b4690b3f8b 216 /* Check if data + heap + stack exceeds RAM limit */
AnnaBridge 165:d1b4690b3f8b 217 ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
AnnaBridge 165:d1b4690b3f8b 218
AnnaBridge 165:d1b4690b3f8b 219 __etext2 = __etext + SIZEOF(.data);
AnnaBridge 165:d1b4690b3f8b 220 .nc_data : AT (__etext2)
AnnaBridge 165:d1b4690b3f8b 221 {
AnnaBridge 165:d1b4690b3f8b 222 Image$$RW_DATA_NC$$Base = .;
AnnaBridge 165:d1b4690b3f8b 223 __nc_data_start = .;
AnnaBridge 165:d1b4690b3f8b 224 *(NC_DATA)
AnnaBridge 165:d1b4690b3f8b 225
AnnaBridge 165:d1b4690b3f8b 226 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 227 __nc_data_end = .;
AnnaBridge 165:d1b4690b3f8b 228 Image$$RW_DATA_NC$$Limit = .;
AnnaBridge 165:d1b4690b3f8b 229 } > RAM_NC
AnnaBridge 165:d1b4690b3f8b 230
AnnaBridge 165:d1b4690b3f8b 231 .nc_bss (NOLOAD) :
AnnaBridge 165:d1b4690b3f8b 232 {
AnnaBridge 165:d1b4690b3f8b 233 Image$$ZI_DATA_NC$$Base = .;
AnnaBridge 165:d1b4690b3f8b 234 __nc_bss_start = .;
AnnaBridge 165:d1b4690b3f8b 235 *(NC_BSS)
AnnaBridge 165:d1b4690b3f8b 236
AnnaBridge 165:d1b4690b3f8b 237 . = ALIGN(4);
AnnaBridge 165:d1b4690b3f8b 238 __nc_bss_end = .;
AnnaBridge 165:d1b4690b3f8b 239 Image$$ZI_DATA_NC$$Limit = .;
AnnaBridge 165:d1b4690b3f8b 240 } > RAM_NC
AnnaBridge 165:d1b4690b3f8b 241 }