mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
423:560d1a9f3083
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 423:560d1a9f3083 1 /* Linker script to configure memory regions. */
mbed_official 423:560d1a9f3083 2 MEMORY
mbed_official 423:560d1a9f3083 3 {
mbed_official 423:560d1a9f3083 4 FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 64k
mbed_official 423:560d1a9f3083 5 RAM (xrw) : ORIGIN = 0x200000C0, LENGTH = 8k - 0x0C0
mbed_official 423:560d1a9f3083 6 }
mbed_official 423:560d1a9f3083 7
mbed_official 423:560d1a9f3083 8 /* Linker script to place sections and symbol values. Should be used together
mbed_official 423:560d1a9f3083 9 * with other linker script that defines memory regions FLASH and RAM.
mbed_official 423:560d1a9f3083 10 * It references following symbols, which must be defined in code:
mbed_official 423:560d1a9f3083 11 * Reset_Handler : Entry of reset handler
mbed_official 423:560d1a9f3083 12 *
mbed_official 423:560d1a9f3083 13 * It defines following symbols, which code can use without definition:
mbed_official 423:560d1a9f3083 14 * __exidx_start
mbed_official 423:560d1a9f3083 15 * __exidx_end
mbed_official 423:560d1a9f3083 16 * __etext
mbed_official 423:560d1a9f3083 17 * __data_start__
mbed_official 423:560d1a9f3083 18 * __preinit_array_start
mbed_official 423:560d1a9f3083 19 * __preinit_array_end
mbed_official 423:560d1a9f3083 20 * __init_array_start
mbed_official 423:560d1a9f3083 21 * __init_array_end
mbed_official 423:560d1a9f3083 22 * __fini_array_start
mbed_official 423:560d1a9f3083 23 * __fini_array_end
mbed_official 423:560d1a9f3083 24 * __data_end__
mbed_official 423:560d1a9f3083 25 * __bss_start__
mbed_official 423:560d1a9f3083 26 * __bss_end__
mbed_official 423:560d1a9f3083 27 * __end__
mbed_official 423:560d1a9f3083 28 * end
mbed_official 423:560d1a9f3083 29 * __HeapLimit
mbed_official 423:560d1a9f3083 30 * __StackLimit
mbed_official 423:560d1a9f3083 31 * __StackTop
mbed_official 423:560d1a9f3083 32 * __stack
mbed_official 423:560d1a9f3083 33 * _estack
mbed_official 423:560d1a9f3083 34 */
mbed_official 423:560d1a9f3083 35 ENTRY(Reset_Handler)
mbed_official 423:560d1a9f3083 36
mbed_official 423:560d1a9f3083 37 SECTIONS
mbed_official 423:560d1a9f3083 38 {
mbed_official 423:560d1a9f3083 39 .text :
mbed_official 423:560d1a9f3083 40 {
mbed_official 423:560d1a9f3083 41 KEEP(*(.isr_vector))
mbed_official 423:560d1a9f3083 42 *(.text*)
mbed_official 423:560d1a9f3083 43
mbed_official 423:560d1a9f3083 44 KEEP(*(.init))
mbed_official 423:560d1a9f3083 45 KEEP(*(.fini))
mbed_official 423:560d1a9f3083 46
mbed_official 423:560d1a9f3083 47 /* .ctors */
mbed_official 423:560d1a9f3083 48 *crtbegin.o(.ctors)
mbed_official 423:560d1a9f3083 49 *crtbegin?.o(.ctors)
mbed_official 423:560d1a9f3083 50 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
mbed_official 423:560d1a9f3083 51 *(SORT(.ctors.*))
mbed_official 423:560d1a9f3083 52 *(.ctors)
mbed_official 423:560d1a9f3083 53
mbed_official 423:560d1a9f3083 54 /* .dtors */
mbed_official 423:560d1a9f3083 55 *crtbegin.o(.dtors)
mbed_official 423:560d1a9f3083 56 *crtbegin?.o(.dtors)
mbed_official 423:560d1a9f3083 57 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
mbed_official 423:560d1a9f3083 58 *(SORT(.dtors.*))
mbed_official 423:560d1a9f3083 59 *(.dtors)
mbed_official 423:560d1a9f3083 60
mbed_official 423:560d1a9f3083 61 *(.rodata*)
mbed_official 423:560d1a9f3083 62
mbed_official 423:560d1a9f3083 63 KEEP(*(.eh_frame*))
mbed_official 423:560d1a9f3083 64 } > FLASH
mbed_official 423:560d1a9f3083 65
mbed_official 423:560d1a9f3083 66 .ARM.extab :
mbed_official 423:560d1a9f3083 67 {
mbed_official 423:560d1a9f3083 68 *(.ARM.extab* .gnu.linkonce.armextab.*)
mbed_official 423:560d1a9f3083 69 } > FLASH
mbed_official 423:560d1a9f3083 70
mbed_official 423:560d1a9f3083 71 __exidx_start = .;
mbed_official 423:560d1a9f3083 72 .ARM.exidx :
mbed_official 423:560d1a9f3083 73 {
mbed_official 423:560d1a9f3083 74 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
mbed_official 423:560d1a9f3083 75 } > FLASH
mbed_official 423:560d1a9f3083 76 __exidx_end = .;
mbed_official 423:560d1a9f3083 77
mbed_official 423:560d1a9f3083 78 __etext = .;
mbed_official 423:560d1a9f3083 79 _sidata = .;
mbed_official 423:560d1a9f3083 80
mbed_official 423:560d1a9f3083 81 .data : AT (__etext)
mbed_official 423:560d1a9f3083 82 {
mbed_official 423:560d1a9f3083 83 __data_start__ = .;
mbed_official 423:560d1a9f3083 84 _sdata = .;
mbed_official 423:560d1a9f3083 85 *(vtable)
mbed_official 423:560d1a9f3083 86 *(.data*)
mbed_official 423:560d1a9f3083 87
mbed_official 423:560d1a9f3083 88 . = ALIGN(4);
mbed_official 423:560d1a9f3083 89 /* preinit data */
mbed_official 423:560d1a9f3083 90 PROVIDE_HIDDEN (__preinit_array_start = .);
mbed_official 423:560d1a9f3083 91 KEEP(*(.preinit_array))
mbed_official 423:560d1a9f3083 92 PROVIDE_HIDDEN (__preinit_array_end = .);
mbed_official 423:560d1a9f3083 93
mbed_official 423:560d1a9f3083 94 . = ALIGN(4);
mbed_official 423:560d1a9f3083 95 /* init data */
mbed_official 423:560d1a9f3083 96 PROVIDE_HIDDEN (__init_array_start = .);
mbed_official 423:560d1a9f3083 97 KEEP(*(SORT(.init_array.*)))
mbed_official 423:560d1a9f3083 98 KEEP(*(.init_array))
mbed_official 423:560d1a9f3083 99 PROVIDE_HIDDEN (__init_array_end = .);
mbed_official 423:560d1a9f3083 100
mbed_official 423:560d1a9f3083 101
mbed_official 423:560d1a9f3083 102 . = ALIGN(4);
mbed_official 423:560d1a9f3083 103 /* finit data */
mbed_official 423:560d1a9f3083 104 PROVIDE_HIDDEN (__fini_array_start = .);
mbed_official 423:560d1a9f3083 105 KEEP(*(SORT(.fini_array.*)))
mbed_official 423:560d1a9f3083 106 KEEP(*(.fini_array))
mbed_official 423:560d1a9f3083 107 PROVIDE_HIDDEN (__fini_array_end = .);
mbed_official 423:560d1a9f3083 108
mbed_official 423:560d1a9f3083 109 KEEP(*(.jcr*))
mbed_official 423:560d1a9f3083 110 . = ALIGN(4);
mbed_official 423:560d1a9f3083 111 /* All data end */
mbed_official 423:560d1a9f3083 112 __data_end__ = .;
mbed_official 423:560d1a9f3083 113 _edata = .;
mbed_official 423:560d1a9f3083 114
mbed_official 423:560d1a9f3083 115 } > RAM
mbed_official 423:560d1a9f3083 116
mbed_official 423:560d1a9f3083 117 .bss :
mbed_official 423:560d1a9f3083 118 {
mbed_official 423:560d1a9f3083 119 . = ALIGN(4);
mbed_official 423:560d1a9f3083 120 __bss_start__ = .;
mbed_official 423:560d1a9f3083 121 _sbss = .;
mbed_official 423:560d1a9f3083 122 *(.bss*)
mbed_official 423:560d1a9f3083 123 *(COMMON)
mbed_official 423:560d1a9f3083 124 . = ALIGN(4);
mbed_official 423:560d1a9f3083 125 __bss_end__ = .;
mbed_official 423:560d1a9f3083 126 _ebss = .;
mbed_official 423:560d1a9f3083 127 } > RAM
mbed_official 423:560d1a9f3083 128
mbed_official 423:560d1a9f3083 129 .heap (COPY):
mbed_official 423:560d1a9f3083 130 {
mbed_official 423:560d1a9f3083 131 __end__ = .;
mbed_official 423:560d1a9f3083 132 end = __end__;
mbed_official 423:560d1a9f3083 133 *(.heap*)
mbed_official 423:560d1a9f3083 134 __HeapLimit = .;
mbed_official 423:560d1a9f3083 135 } > RAM
mbed_official 423:560d1a9f3083 136
mbed_official 423:560d1a9f3083 137 /* .stack_dummy section doesn't contains any symbols. It is only
mbed_official 423:560d1a9f3083 138 * used for linker to calculate size of stack sections, and assign
mbed_official 423:560d1a9f3083 139 * values to stack symbols later */
mbed_official 423:560d1a9f3083 140 .stack_dummy (COPY):
mbed_official 423:560d1a9f3083 141 {
mbed_official 423:560d1a9f3083 142 *(.stack*)
mbed_official 423:560d1a9f3083 143 } > RAM
mbed_official 423:560d1a9f3083 144
mbed_official 423:560d1a9f3083 145 /* Set stack top to end of RAM, and stack limit move down by
mbed_official 423:560d1a9f3083 146 * size of stack_dummy section */
mbed_official 423:560d1a9f3083 147 __StackTop = ORIGIN(RAM) + LENGTH(RAM);
mbed_official 423:560d1a9f3083 148 _estack = __StackTop;
mbed_official 423:560d1a9f3083 149 __StackLimit = __StackTop - SIZEOF(.stack_dummy);
mbed_official 423:560d1a9f3083 150 PROVIDE(__stack = __StackTop);
mbed_official 423:560d1a9f3083 151
mbed_official 423:560d1a9f3083 152 /* Check if data + heap + stack exceeds RAM limit */
mbed_official 423:560d1a9f3083 153 ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
mbed_official 423:560d1a9f3083 154 }
mbed_official 423:560d1a9f3083 155