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:
Mon Sep 28 13:00:10 2015 +0100
Revision:
631:ff681937ffd8
Synchronized with git revision 1be56c8134a3ed6004f149a84f658de45dda6a5c

Full URL: https://github.com/mbedmicro/mbed/commit/1be56c8134a3ed6004f149a84f658de45dda6a5c/

Who changed what in which revision?

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