mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Fri Sep 15 14:59:18 2017 +0100
Revision:
173:e131a1973e81
Child:
174:b96e65c34a4d
This updates the lib to the mbed lib v 151

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 173:e131a1973e81 1 /*
AnnaBridge 173:e131a1973e81 2 * Copyright (c) 2013-2016 Realtek Semiconductor Corp.
AnnaBridge 173:e131a1973e81 3 *
AnnaBridge 173:e131a1973e81 4 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 173:e131a1973e81 5 * you may not use this file except in compliance with the License.
AnnaBridge 173:e131a1973e81 6 * You may obtain a copy of the License at
AnnaBridge 173:e131a1973e81 7 *
AnnaBridge 173:e131a1973e81 8 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 173:e131a1973e81 9 *
AnnaBridge 173:e131a1973e81 10 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 173:e131a1973e81 11 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 173:e131a1973e81 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 173:e131a1973e81 13 * See the License for the specific language governing permissions and
AnnaBridge 173:e131a1973e81 14 * limitations under the License.
AnnaBridge 173:e131a1973e81 15 */
AnnaBridge 173:e131a1973e81 16
AnnaBridge 173:e131a1973e81 17 INCLUDE "rtl8195a_rom.h"
AnnaBridge 173:e131a1973e81 18 /* DATA_RAM: We cannot put Code(.text) in DATA_RAM, this region is reserved for Image1(boot loader).
AnnaBridge 173:e131a1973e81 19 But we can put .data/.bss of Image2 in this region */
AnnaBridge 173:e131a1973e81 20 MEMORY
AnnaBridge 173:e131a1973e81 21 {
AnnaBridge 173:e131a1973e81 22 TCM (rwx) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000
AnnaBridge 173:e131a1973e81 23 DATA_RAM (rwx) : ORIGIN = 0x10002100, LENGTH = 0x10007000 - 0x10002100
AnnaBridge 173:e131a1973e81 24 SRAM1 (rwx) : ORIGIN = 0x10007000, LENGTH = 0x10070000 - 0x10007000
AnnaBridge 173:e131a1973e81 25 SRAM2 (rwx) : ORIGIN = 0x30000000, LENGTH = 2M
AnnaBridge 173:e131a1973e81 26 }
AnnaBridge 173:e131a1973e81 27
AnnaBridge 173:e131a1973e81 28 /* Stack sizes: */
AnnaBridge 173:e131a1973e81 29 StackSize = 0x1000;
AnnaBridge 173:e131a1973e81 30
AnnaBridge 173:e131a1973e81 31 /* Linker script to place sections and symbol values. Should be used together
AnnaBridge 173:e131a1973e81 32 * with other linker script that defines memory regions FLASH and RAM.
AnnaBridge 173:e131a1973e81 33 * It references following symbols, which must be defined in code:
AnnaBridge 173:e131a1973e81 34 * _reset_init : Entry of reset handler
AnnaBridge 173:e131a1973e81 35 *
AnnaBridge 173:e131a1973e81 36 * It defines following symbols, which code can use without definition:
AnnaBridge 173:e131a1973e81 37 * __exidx_start
AnnaBridge 173:e131a1973e81 38 * __exidx_end
AnnaBridge 173:e131a1973e81 39 * __etext
AnnaBridge 173:e131a1973e81 40 * __data_start__
AnnaBridge 173:e131a1973e81 41 * __preinit_array_start
AnnaBridge 173:e131a1973e81 42 * __preinit_array_end
AnnaBridge 173:e131a1973e81 43 * __init_array_start
AnnaBridge 173:e131a1973e81 44 * __init_array_end
AnnaBridge 173:e131a1973e81 45 * __fini_array_start
AnnaBridge 173:e131a1973e81 46 * __fini_array_end
AnnaBridge 173:e131a1973e81 47 * __data_end__
AnnaBridge 173:e131a1973e81 48 * __bss_start__
AnnaBridge 173:e131a1973e81 49 * __bss_end__
AnnaBridge 173:e131a1973e81 50 * __end__
AnnaBridge 173:e131a1973e81 51 * end
AnnaBridge 173:e131a1973e81 52 * __HeapLimit
AnnaBridge 173:e131a1973e81 53 * __StackLimit
AnnaBridge 173:e131a1973e81 54 * __StackTop
AnnaBridge 173:e131a1973e81 55 * __stack
AnnaBridge 173:e131a1973e81 56 */
AnnaBridge 173:e131a1973e81 57 ENTRY(Reset_Handler)
AnnaBridge 173:e131a1973e81 58
AnnaBridge 173:e131a1973e81 59 SECTIONS
AnnaBridge 173:e131a1973e81 60 {
AnnaBridge 173:e131a1973e81 61 .image2.table :
AnnaBridge 173:e131a1973e81 62 {
AnnaBridge 173:e131a1973e81 63 KEEP(*(SORT(.image2.ram.data*)))
AnnaBridge 173:e131a1973e81 64 KEEP(*(.image2.validate.rodata*))
AnnaBridge 173:e131a1973e81 65 } > SRAM2
AnnaBridge 173:e131a1973e81 66
AnnaBridge 173:e131a1973e81 67 .text.sram1 :
AnnaBridge 173:e131a1973e81 68 {
AnnaBridge 173:e131a1973e81 69 . = ALIGN(4);
AnnaBridge 173:e131a1973e81 70 *rtl8195a_crypto.o (.text* .rodata*)
AnnaBridge 173:e131a1973e81 71 *mbedtls*.o (.text* .rodata*)
AnnaBridge 173:e131a1973e81 72 *libc.a: (.text* .rodata*)
AnnaBridge 173:e131a1973e81 73 *Ticker.o (.text*)
AnnaBridge 173:e131a1973e81 74 *Timeout.o (.text*)
AnnaBridge 173:e131a1973e81 75 *TimerEvent.o (.text*)
AnnaBridge 173:e131a1973e81 76 *mbed_ticker_api.o (.text*)
AnnaBridge 173:e131a1973e81 77 *mbed_critical.o (.text*)
AnnaBridge 173:e131a1973e81 78 *us_ticker.o (.text*)
AnnaBridge 173:e131a1973e81 79
AnnaBridge 173:e131a1973e81 80 *lib_peripheral_mbed_gcc.a: (.text*)
AnnaBridge 173:e131a1973e81 81
AnnaBridge 173:e131a1973e81 82 } > SRAM1
AnnaBridge 173:e131a1973e81 83
AnnaBridge 173:e131a1973e81 84 .text.sram2 :
AnnaBridge 173:e131a1973e81 85 {
AnnaBridge 173:e131a1973e81 86 . = ALIGN(4);
AnnaBridge 173:e131a1973e81 87 *(.mon.ram.text*)
AnnaBridge 173:e131a1973e81 88 *(.hal.flash.text*)
AnnaBridge 173:e131a1973e81 89 *(.hal.sdrc.text*)
AnnaBridge 173:e131a1973e81 90 *(.hal.gpio.text*)
AnnaBridge 173:e131a1973e81 91 *(.text*)
AnnaBridge 173:e131a1973e81 92
AnnaBridge 173:e131a1973e81 93 KEEP(*(.init))
AnnaBridge 173:e131a1973e81 94 KEEP(*(.fini))
AnnaBridge 173:e131a1973e81 95
AnnaBridge 173:e131a1973e81 96 /* .ctors */
AnnaBridge 173:e131a1973e81 97 *crtbegin.o(.ctors)
AnnaBridge 173:e131a1973e81 98 *crtbegin?.o(.ctors)
AnnaBridge 173:e131a1973e81 99 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
AnnaBridge 173:e131a1973e81 100 *(SORT(.ctors.*))
AnnaBridge 173:e131a1973e81 101 *(.ctors)
AnnaBridge 173:e131a1973e81 102
AnnaBridge 173:e131a1973e81 103 /* .dtors */
AnnaBridge 173:e131a1973e81 104 *crtbegin.o(.dtors)
AnnaBridge 173:e131a1973e81 105 *crtbegin?.o(.dtors)
AnnaBridge 173:e131a1973e81 106 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
AnnaBridge 173:e131a1973e81 107 *(SORT(.dtors.*))
AnnaBridge 173:e131a1973e81 108 *(.dtors)
AnnaBridge 173:e131a1973e81 109
AnnaBridge 173:e131a1973e81 110 *(.rodata*)
AnnaBridge 173:e131a1973e81 111
AnnaBridge 173:e131a1973e81 112 KEEP(*(.eh_frame*))
AnnaBridge 173:e131a1973e81 113 } > SRAM2
AnnaBridge 173:e131a1973e81 114 __etext = .;
AnnaBridge 173:e131a1973e81 115
AnnaBridge 173:e131a1973e81 116 __data_start__ = .;
AnnaBridge 173:e131a1973e81 117
AnnaBridge 173:e131a1973e81 118 .data.sram1 :
AnnaBridge 173:e131a1973e81 119 {
AnnaBridge 173:e131a1973e81 120 . = ALIGN(4);
AnnaBridge 173:e131a1973e81 121 __sram_data_start__ = .;
AnnaBridge 173:e131a1973e81 122 *rtl8195a_crypto*.o (.data*)
AnnaBridge 173:e131a1973e81 123 *mbedtls*.o (.data*)
AnnaBridge 173:e131a1973e81 124 __sram_data_end__ = .;
AnnaBridge 173:e131a1973e81 125 } > SRAM1
AnnaBridge 173:e131a1973e81 126
AnnaBridge 173:e131a1973e81 127 .data.sram2 :
AnnaBridge 173:e131a1973e81 128 {
AnnaBridge 173:e131a1973e81 129 __sdram_data_start__ = .;
AnnaBridge 173:e131a1973e81 130 *(vtable)
AnnaBridge 173:e131a1973e81 131 *(.data*)
AnnaBridge 173:e131a1973e81 132 *(.sdram.data*)
AnnaBridge 173:e131a1973e81 133
AnnaBridge 173:e131a1973e81 134 . = ALIGN(4);
AnnaBridge 173:e131a1973e81 135 /* preinit data */
AnnaBridge 173:e131a1973e81 136 PROVIDE (__preinit_array_start = .);
AnnaBridge 173:e131a1973e81 137 KEEP(*(.preinit_array))
AnnaBridge 173:e131a1973e81 138 PROVIDE (__preinit_array_end = .);
AnnaBridge 173:e131a1973e81 139
AnnaBridge 173:e131a1973e81 140 . = ALIGN(4);
AnnaBridge 173:e131a1973e81 141 /* init data */
AnnaBridge 173:e131a1973e81 142 PROVIDE (__init_array_start = .);
AnnaBridge 173:e131a1973e81 143 KEEP(*(SORT(.init_array.*)))
AnnaBridge 173:e131a1973e81 144 KEEP(*(.init_array))
AnnaBridge 173:e131a1973e81 145 PROVIDE (__init_array_end = .);
AnnaBridge 173:e131a1973e81 146
AnnaBridge 173:e131a1973e81 147 . = ALIGN(4);
AnnaBridge 173:e131a1973e81 148 /* finit data */
AnnaBridge 173:e131a1973e81 149 PROVIDE (__fini_array_start = .);
AnnaBridge 173:e131a1973e81 150 KEEP(*(SORT(.fini_array.*)))
AnnaBridge 173:e131a1973e81 151 KEEP(*(.fini_array))
AnnaBridge 173:e131a1973e81 152 PROVIDE (__fini_array_end = .);
AnnaBridge 173:e131a1973e81 153
AnnaBridge 173:e131a1973e81 154 . = ALIGN(4);
AnnaBridge 173:e131a1973e81 155
AnnaBridge 173:e131a1973e81 156 __sdram_data_end__ = .;
AnnaBridge 173:e131a1973e81 157 /* All data end */
AnnaBridge 173:e131a1973e81 158 } > SRAM2
AnnaBridge 173:e131a1973e81 159 __data_end__ = .;
AnnaBridge 173:e131a1973e81 160 __image2_end__ = .;
AnnaBridge 173:e131a1973e81 161
AnnaBridge 173:e131a1973e81 162 .ARM.extab :
AnnaBridge 173:e131a1973e81 163 {
AnnaBridge 173:e131a1973e81 164 *(.ARM.extab* .gnu.linkonce.armextab.*)
AnnaBridge 173:e131a1973e81 165 } > SRAM2
AnnaBridge 173:e131a1973e81 166
AnnaBridge 173:e131a1973e81 167 __exidx_start = .;
AnnaBridge 173:e131a1973e81 168 .ARM.exidx :
AnnaBridge 173:e131a1973e81 169 {
AnnaBridge 173:e131a1973e81 170 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
AnnaBridge 173:e131a1973e81 171 } > SRAM2
AnnaBridge 173:e131a1973e81 172 __exidx_end = .;
AnnaBridge 173:e131a1973e81 173
AnnaBridge 173:e131a1973e81 174 .bss.sram1 (NOLOAD) :
AnnaBridge 173:e131a1973e81 175 {
AnnaBridge 173:e131a1973e81 176 __bss_sram_start__ = .;
AnnaBridge 173:e131a1973e81 177 *rtl8195a_crypto.o (.bss* COMMON)
AnnaBridge 173:e131a1973e81 178 *mbedtls*.o (.bss* COMMON)
AnnaBridge 173:e131a1973e81 179 *(.bss.thread_stack_main)
AnnaBridge 173:e131a1973e81 180 __bss_sram_end__ = .;
AnnaBridge 173:e131a1973e81 181 } > SRAM1
AnnaBridge 173:e131a1973e81 182
AnnaBridge 173:e131a1973e81 183 .bss.sram2 (NOLOAD) :
AnnaBridge 173:e131a1973e81 184 {
AnnaBridge 173:e131a1973e81 185 __bss_start__ = .;
AnnaBridge 173:e131a1973e81 186 __bss_dram_start__ = .;
AnnaBridge 173:e131a1973e81 187 *(.bss*)
AnnaBridge 173:e131a1973e81 188 *(COMMON)
AnnaBridge 173:e131a1973e81 189 *(.bdsram.data*)
AnnaBridge 173:e131a1973e81 190 __bss_dram_end__ = .;
AnnaBridge 173:e131a1973e81 191 __bss_end__ = .;
AnnaBridge 173:e131a1973e81 192 } > SRAM2
AnnaBridge 173:e131a1973e81 193
AnnaBridge 173:e131a1973e81 194 .bf_data :
AnnaBridge 173:e131a1973e81 195 {
AnnaBridge 173:e131a1973e81 196 __buffer_data_start__ = .;
AnnaBridge 173:e131a1973e81 197 *(.bfsram.data*)
AnnaBridge 173:e131a1973e81 198 __buffer_data_end__ = .;
AnnaBridge 173:e131a1973e81 199 } > SRAM2
AnnaBridge 173:e131a1973e81 200
AnnaBridge 173:e131a1973e81 201 .heap (NOLOAD):
AnnaBridge 173:e131a1973e81 202 {
AnnaBridge 173:e131a1973e81 203 __end__ = .;
AnnaBridge 173:e131a1973e81 204 end = __end__;
AnnaBridge 173:e131a1973e81 205 *(.heap*)
AnnaBridge 173:e131a1973e81 206 . = ORIGIN(SRAM1) + LENGTH(SRAM1) - StackSize;
AnnaBridge 173:e131a1973e81 207 __HeapLimit = .;
AnnaBridge 173:e131a1973e81 208 } > SRAM1
AnnaBridge 173:e131a1973e81 209
AnnaBridge 173:e131a1973e81 210 .TCM_overlay :
AnnaBridge 173:e131a1973e81 211 {
AnnaBridge 173:e131a1973e81 212 __bss_dtcm_start__ = .;
AnnaBridge 173:e131a1973e81 213 *lwip_mem.o (.bss*)
AnnaBridge 173:e131a1973e81 214 *lwip_memp.o (.bss*)
AnnaBridge 173:e131a1973e81 215 *(.tcm.heap*)
AnnaBridge 173:e131a1973e81 216 __bss_dtcm_end__ = .;
AnnaBridge 173:e131a1973e81 217 } > TCM
AnnaBridge 173:e131a1973e81 218
AnnaBridge 173:e131a1973e81 219 /* .stack_dummy section doesn't contains any symbols. It is only
AnnaBridge 173:e131a1973e81 220 * used for linker to calculate size of stack sections, and assign
AnnaBridge 173:e131a1973e81 221 * values to stack symbols later */
AnnaBridge 173:e131a1973e81 222 .stack_dummy (NOLOAD):
AnnaBridge 173:e131a1973e81 223 {
AnnaBridge 173:e131a1973e81 224 __StackLimit = .;
AnnaBridge 173:e131a1973e81 225 *(.stack)
AnnaBridge 173:e131a1973e81 226 . += StackSize - (. - __StackLimit);
AnnaBridge 173:e131a1973e81 227 } > SRAM1
AnnaBridge 173:e131a1973e81 228
AnnaBridge 173:e131a1973e81 229 /* Set stack top to end of RAM, and stack limit move down by
AnnaBridge 173:e131a1973e81 230 * size of stack_dummy section */
AnnaBridge 173:e131a1973e81 231 __StackTop = ORIGIN(SRAM1) + LENGTH(SRAM1);
AnnaBridge 173:e131a1973e81 232 __StackLimit = __StackTop - SIZEOF(.stack_dummy);
AnnaBridge 173:e131a1973e81 233 PROVIDE(__stack = __StackTop);
AnnaBridge 173:e131a1973e81 234
AnnaBridge 173:e131a1973e81 235 /* Check if data + heap + stack exceeds RAM limit */
AnnaBridge 173:e131a1973e81 236 ASSERT(__StackLimit >= __HeapLimit, "region RAM exceeds ram limit")
AnnaBridge 173:e131a1973e81 237 }