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 Aug 31 18:09:46 2016 +0100
Revision:
125:2e9cc70d1897
Child:
128:9bcdf88f62b0
Release 125 of the mbed library

Changes:

New target - KL27Z_IAR
New target - MAX32620HSP_ARM_STD
New target - MAX32620HSP_GCC_ARM
New target - MAX32620HSP_IAR
New target - NCS36510_ARM_STD
New target - NCS36510_GCC_ARM
New target - NCS36510_IAR

Added support for NSAPI_REUSEADDR to the lwip interface.
STM32F3 family : Add and enable asynchronous serial, plus tests.
STM32L4 family : Add and enable asynchronous serial, plus tests.
Fixing issue where GCC fails to report compile errors when non-verbose.
Add ethernet and IPV4 support for: NUCLEO_F207ZG, NUCLEO_F429ZI, NUCLEO_F767ZI, DISCO_F746NG.
RZ_A1H - Enable SPI1 on pins P6_4 to P6_7.
KL27Z : SPI driver bug fixes and Improvements, ARM linker file update.
STM32F4, STM32F7 families : Add entropy functions, documentation, code improvements, fix build issues.
HEXIWEAR: Update I2C pin mapping, Add support to create KDS projects.
LWIP - fix recv blocking send on accepted sockets.
SingletonPtr bugfixes.
Beetle: Implement sleep API.
uVisor: Update to v0.20.1-alpha, minor documentation update.
STM32F3 : fix RTOS IAR test, RTOS GCC_ARM test.
nrf5x : Introduce uart hardware flow control configuration.
K64F/K22F: Implement HAL lp_timer API.
Ticker: Move ticker initialisation to object creation time.
STM32F4 : remove printf from pwmout
NXP : Fix multiple definition errors in GCC_CR build, fix linker errors.
Add TOOLCHAIN_GCC_CR support.
STM32L1 family : Add and enable asynchronous serial, plus tests.
mbed-client : Fix Bootstrap and Connector functionality.
NUC472 : Fix Ethernet wrong INT status in RX_Action.
RTX_CM_lib.h : fix compiler warning.
NUCLEO : Use GCC small build for 64K flash STM32.
STM32F2 family : Add and enable asynchronous serial, plus tests.
uvisor : Move page heap after uVisor private data, update page allocator.
K64F: Revert to hardcoded stack pointer in RTX .
dns-query : Internal API change , documentation, Added support for multiple results and ipv6.
Add support for implementation-provided DNS servers.
Adopted netconn_gethostbyname in the lwip interface.
Restructured nsapi_dns.h to have clear separation between C/C++ .
Tool fixes.
Tests : New ones added and some updates to existing.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 125:2e9cc70d1897 1 /*
AnnaBridge 125:2e9cc70d1897 2 * NCS36510 ARM GCC linker script file
AnnaBridge 125:2e9cc70d1897 3 */
AnnaBridge 125:2e9cc70d1897 4
AnnaBridge 125:2e9cc70d1897 5 MEMORY
AnnaBridge 125:2e9cc70d1897 6 {
AnnaBridge 125:2e9cc70d1897 7 VECTORS (rx) : ORIGIN = 0x00003000, LENGTH = 0x00000090
AnnaBridge 125:2e9cc70d1897 8 FLASH (rx) : ORIGIN = 0x00003090, LENGTH = 320K - 4K - 0x90
AnnaBridge 125:2e9cc70d1897 9 RAM (rwx) : ORIGIN = 0x3FFF4000, LENGTH = 48K
AnnaBridge 125:2e9cc70d1897 10 }
AnnaBridge 125:2e9cc70d1897 11
AnnaBridge 125:2e9cc70d1897 12 /* Linker script to place sections and symbol values. Should be used together
AnnaBridge 125:2e9cc70d1897 13 * with other linker script that defines memory regions FLASH and RAM.
AnnaBridge 125:2e9cc70d1897 14 * It references following symbols, which must be defined in code:
AnnaBridge 125:2e9cc70d1897 15 * _reset_init : Entry of reset handler
AnnaBridge 125:2e9cc70d1897 16 *
AnnaBridge 125:2e9cc70d1897 17 * It defines following symbols, which code can use without definition:
AnnaBridge 125:2e9cc70d1897 18 * __exidx_start
AnnaBridge 125:2e9cc70d1897 19 * __exidx_end
AnnaBridge 125:2e9cc70d1897 20 * __etext
AnnaBridge 125:2e9cc70d1897 21 * __data_start__
AnnaBridge 125:2e9cc70d1897 22 * __preinit_array_start
AnnaBridge 125:2e9cc70d1897 23 * __preinit_array_end
AnnaBridge 125:2e9cc70d1897 24 * __init_array_start
AnnaBridge 125:2e9cc70d1897 25 * __init_array_end
AnnaBridge 125:2e9cc70d1897 26 * __fini_array_start
AnnaBridge 125:2e9cc70d1897 27 * __fini_array_end
AnnaBridge 125:2e9cc70d1897 28 * __data_end__
AnnaBridge 125:2e9cc70d1897 29 * __bss_start__
AnnaBridge 125:2e9cc70d1897 30 * __bss_end__
AnnaBridge 125:2e9cc70d1897 31 * __end__
AnnaBridge 125:2e9cc70d1897 32 * end
AnnaBridge 125:2e9cc70d1897 33 * __HeapLimit
AnnaBridge 125:2e9cc70d1897 34 * __StackLimit
AnnaBridge 125:2e9cc70d1897 35 * __StackTop
AnnaBridge 125:2e9cc70d1897 36 * __stack
AnnaBridge 125:2e9cc70d1897 37 */
AnnaBridge 125:2e9cc70d1897 38 ENTRY(Reset_Handler)
AnnaBridge 125:2e9cc70d1897 39
AnnaBridge 125:2e9cc70d1897 40 SECTIONS
AnnaBridge 125:2e9cc70d1897 41 {
AnnaBridge 125:2e9cc70d1897 42 .isr_vector :
AnnaBridge 125:2e9cc70d1897 43 {
AnnaBridge 125:2e9cc70d1897 44 __vector_table = .;
AnnaBridge 125:2e9cc70d1897 45 KEEP(*(.vector_table))
AnnaBridge 125:2e9cc70d1897 46 . = ALIGN(4);
AnnaBridge 125:2e9cc70d1897 47 } > VECTORS
AnnaBridge 125:2e9cc70d1897 48
AnnaBridge 125:2e9cc70d1897 49 /* ensure that uvisor bss is at the beginning of memory */
AnnaBridge 125:2e9cc70d1897 50 .uvisor.bss (NOLOAD):
AnnaBridge 125:2e9cc70d1897 51 {
AnnaBridge 125:2e9cc70d1897 52 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 53 __uvisor_bss_start = .;
AnnaBridge 125:2e9cc70d1897 54
AnnaBridge 125:2e9cc70d1897 55 /* protected uvisor main bss */
AnnaBridge 125:2e9cc70d1897 56 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 57 __uvisor_bss_main_start = .;
AnnaBridge 125:2e9cc70d1897 58 KEEP(*(.keep.uvisor.bss.main))
AnnaBridge 125:2e9cc70d1897 59 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 60 __uvisor_bss_main_end = .;
AnnaBridge 125:2e9cc70d1897 61
AnnaBridge 125:2e9cc70d1897 62 /* protected uvisor secure boxes bss */
AnnaBridge 125:2e9cc70d1897 63 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 64 __uvisor_bss_boxes_start = .;
AnnaBridge 125:2e9cc70d1897 65 KEEP(*(.keep.uvisor.bss.boxes))
AnnaBridge 125:2e9cc70d1897 66 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 67 __uvisor_bss_boxes_end = .;
AnnaBridge 125:2e9cc70d1897 68
AnnaBridge 125:2e9cc70d1897 69 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 70 __uvisor_bss_end = .;
AnnaBridge 125:2e9cc70d1897 71 } > RAM
AnnaBridge 125:2e9cc70d1897 72
AnnaBridge 125:2e9cc70d1897 73 .text :
AnnaBridge 125:2e9cc70d1897 74 {
AnnaBridge 125:2e9cc70d1897 75 /* uVisor code and data */
AnnaBridge 125:2e9cc70d1897 76 . = ALIGN(4);
AnnaBridge 125:2e9cc70d1897 77 __uvisor_main_start = .;
AnnaBridge 125:2e9cc70d1897 78 *(.uvisor.main)
AnnaBridge 125:2e9cc70d1897 79 __uvisor_main_end = .;
AnnaBridge 125:2e9cc70d1897 80
AnnaBridge 125:2e9cc70d1897 81 *(.text*)
AnnaBridge 125:2e9cc70d1897 82
AnnaBridge 125:2e9cc70d1897 83 KEEP(*(.init))
AnnaBridge 125:2e9cc70d1897 84 KEEP(*(.fini))
AnnaBridge 125:2e9cc70d1897 85
AnnaBridge 125:2e9cc70d1897 86 /* .ctors */
AnnaBridge 125:2e9cc70d1897 87 *crtbegin.o(.ctors)
AnnaBridge 125:2e9cc70d1897 88 *crtbegin?.o(.ctors)
AnnaBridge 125:2e9cc70d1897 89 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
AnnaBridge 125:2e9cc70d1897 90 *(SORT(.ctors.*))
AnnaBridge 125:2e9cc70d1897 91 *(.ctors)
AnnaBridge 125:2e9cc70d1897 92
AnnaBridge 125:2e9cc70d1897 93 /* .dtors */
AnnaBridge 125:2e9cc70d1897 94 *crtbegin.o(.dtors)
AnnaBridge 125:2e9cc70d1897 95 *crtbegin?.o(.dtors)
AnnaBridge 125:2e9cc70d1897 96 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
AnnaBridge 125:2e9cc70d1897 97 *(SORT(.dtors.*))
AnnaBridge 125:2e9cc70d1897 98 *(.dtors)
AnnaBridge 125:2e9cc70d1897 99
AnnaBridge 125:2e9cc70d1897 100 *(.rodata*)
AnnaBridge 125:2e9cc70d1897 101
AnnaBridge 125:2e9cc70d1897 102 KEEP(*(.eh_frame*))
AnnaBridge 125:2e9cc70d1897 103 } > FLASH
AnnaBridge 125:2e9cc70d1897 104
AnnaBridge 125:2e9cc70d1897 105 .ARM.extab :
AnnaBridge 125:2e9cc70d1897 106 {
AnnaBridge 125:2e9cc70d1897 107 *(.ARM.extab* .gnu.linkonce.armextab.*)
AnnaBridge 125:2e9cc70d1897 108 } > FLASH
AnnaBridge 125:2e9cc70d1897 109
AnnaBridge 125:2e9cc70d1897 110 .ARM.exidx :
AnnaBridge 125:2e9cc70d1897 111 {
AnnaBridge 125:2e9cc70d1897 112 __exidx_start = .;
AnnaBridge 125:2e9cc70d1897 113 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
AnnaBridge 125:2e9cc70d1897 114 __exidx_end = .;
AnnaBridge 125:2e9cc70d1897 115 } > FLASH
AnnaBridge 125:2e9cc70d1897 116
AnnaBridge 125:2e9cc70d1897 117 .data :
AnnaBridge 125:2e9cc70d1897 118 {
AnnaBridge 125:2e9cc70d1897 119 PROVIDE( __etext = LOADADDR(.data) );
AnnaBridge 125:2e9cc70d1897 120
AnnaBridge 125:2e9cc70d1897 121 __data_start__ = .;
AnnaBridge 125:2e9cc70d1897 122 *(vtable)
AnnaBridge 125:2e9cc70d1897 123 *(.data*)
AnnaBridge 125:2e9cc70d1897 124
AnnaBridge 125:2e9cc70d1897 125 . = ALIGN(4);
AnnaBridge 125:2e9cc70d1897 126 /* preinit data */
AnnaBridge 125:2e9cc70d1897 127 PROVIDE_HIDDEN (__preinit_array_start = .);
AnnaBridge 125:2e9cc70d1897 128 KEEP(*(.preinit_array))
AnnaBridge 125:2e9cc70d1897 129 PROVIDE_HIDDEN (__preinit_array_end = .);
AnnaBridge 125:2e9cc70d1897 130
AnnaBridge 125:2e9cc70d1897 131 . = ALIGN(4);
AnnaBridge 125:2e9cc70d1897 132 /* init data */
AnnaBridge 125:2e9cc70d1897 133 PROVIDE_HIDDEN (__init_array_start = .);
AnnaBridge 125:2e9cc70d1897 134 KEEP(*(SORT(.init_array.*)))
AnnaBridge 125:2e9cc70d1897 135 KEEP(*(.init_array))
AnnaBridge 125:2e9cc70d1897 136 PROVIDE_HIDDEN (__init_array_end = .);
AnnaBridge 125:2e9cc70d1897 137
AnnaBridge 125:2e9cc70d1897 138 . = ALIGN(4);
AnnaBridge 125:2e9cc70d1897 139 /* finit data */
AnnaBridge 125:2e9cc70d1897 140 PROVIDE_HIDDEN (__fini_array_start = .);
AnnaBridge 125:2e9cc70d1897 141 KEEP(*(SORT(.fini_array.*)))
AnnaBridge 125:2e9cc70d1897 142 KEEP(*(.fini_array))
AnnaBridge 125:2e9cc70d1897 143 PROVIDE_HIDDEN (__fini_array_end = .);
AnnaBridge 125:2e9cc70d1897 144
AnnaBridge 125:2e9cc70d1897 145 /* All data end */
AnnaBridge 125:2e9cc70d1897 146 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 147 __data_end__ = .;
AnnaBridge 125:2e9cc70d1897 148
AnnaBridge 125:2e9cc70d1897 149 } >RAM AT>FLASH
AnnaBridge 125:2e9cc70d1897 150
AnnaBridge 125:2e9cc70d1897 151 /* uvisor configuration data */
AnnaBridge 125:2e9cc70d1897 152 .uvisor.secure :
AnnaBridge 125:2e9cc70d1897 153 {
AnnaBridge 125:2e9cc70d1897 154 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 155 __uvisor_secure_start = .;
AnnaBridge 125:2e9cc70d1897 156
AnnaBridge 125:2e9cc70d1897 157 /* uvisor secure boxes configuration tables */
AnnaBridge 125:2e9cc70d1897 158 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 159 __uvisor_cfgtbl_start = .;
AnnaBridge 125:2e9cc70d1897 160 KEEP(*(.keep.uvisor.cfgtbl))
AnnaBridge 125:2e9cc70d1897 161 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 162 __uvisor_cfgtbl_end = .;
AnnaBridge 125:2e9cc70d1897 163
AnnaBridge 125:2e9cc70d1897 164 /* pointers to uvisor secure boxes configuration tables */
AnnaBridge 125:2e9cc70d1897 165 /* note: no further alignment here, we need to have the exact list of pointers */
AnnaBridge 125:2e9cc70d1897 166 __uvisor_cfgtbl_ptr_start = .;
AnnaBridge 125:2e9cc70d1897 167 KEEP(*(.keep.uvisor.cfgtbl_ptr_first))
AnnaBridge 125:2e9cc70d1897 168 KEEP(*(.keep.uvisor.cfgtbl_ptr))
AnnaBridge 125:2e9cc70d1897 169 __uvisor_cfgtbl_ptr_end = .;
AnnaBridge 125:2e9cc70d1897 170
AnnaBridge 125:2e9cc70d1897 171 /* the following symbols are kept for backward compatibility and will be soon
AnnaBridge 125:2e9cc70d1897 172 * deprecated; applications actively using uVisor (__uvisor_mode == UVISOR_ENABLED)
AnnaBridge 125:2e9cc70d1897 173 * will need to use uVisor 0.8.x or above, or the security assetions will halt the
AnnaBridge 125:2e9cc70d1897 174 * system */
AnnaBridge 125:2e9cc70d1897 175 /************************/
AnnaBridge 125:2e9cc70d1897 176 __uvisor_data_src = .;
AnnaBridge 125:2e9cc70d1897 177 __uvisor_data_start = .;
AnnaBridge 125:2e9cc70d1897 178 __uvisor_data_end = .;
AnnaBridge 125:2e9cc70d1897 179 /************************/
AnnaBridge 125:2e9cc70d1897 180
AnnaBridge 125:2e9cc70d1897 181 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 182 __uvisor_secure_end = .;
AnnaBridge 125:2e9cc70d1897 183 } >FLASH
AnnaBridge 125:2e9cc70d1897 184
AnnaBridge 125:2e9cc70d1897 185 .uninitialized (NOLOAD):
AnnaBridge 125:2e9cc70d1897 186 {
AnnaBridge 125:2e9cc70d1897 187 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 188 __uninitialized_start = .;
AnnaBridge 125:2e9cc70d1897 189 *(.uninitialized)
AnnaBridge 125:2e9cc70d1897 190 KEEP(*(.keep.uninitialized))
AnnaBridge 125:2e9cc70d1897 191 . = ALIGN(32);
AnnaBridge 125:2e9cc70d1897 192 __uninitialized_end = .;
AnnaBridge 125:2e9cc70d1897 193 } > RAM
AnnaBridge 125:2e9cc70d1897 194
AnnaBridge 125:2e9cc70d1897 195 .bss (NOLOAD):
AnnaBridge 125:2e9cc70d1897 196 {
AnnaBridge 125:2e9cc70d1897 197 __bss_start__ = .;
AnnaBridge 125:2e9cc70d1897 198 *(.bss*)
AnnaBridge 125:2e9cc70d1897 199 *(COMMON)
AnnaBridge 125:2e9cc70d1897 200 __bss_end__ = .;
AnnaBridge 125:2e9cc70d1897 201 } > RAM
AnnaBridge 125:2e9cc70d1897 202
AnnaBridge 125:2e9cc70d1897 203 .heap (NOLOAD):
AnnaBridge 125:2e9cc70d1897 204 {
AnnaBridge 125:2e9cc70d1897 205 __end__ = .;
AnnaBridge 125:2e9cc70d1897 206 end = __end__;
AnnaBridge 125:2e9cc70d1897 207 *(.heap*);
AnnaBridge 125:2e9cc70d1897 208 . += 0x4000;
AnnaBridge 125:2e9cc70d1897 209 __HeapLimit = .;
AnnaBridge 125:2e9cc70d1897 210 } > RAM
AnnaBridge 125:2e9cc70d1897 211 PROVIDE(__heap_size = SIZEOF(.heap));
AnnaBridge 125:2e9cc70d1897 212 PROVIDE(__mbed_sbrk_start = ADDR(.heap));
AnnaBridge 125:2e9cc70d1897 213 PROVIDE(__mbed_krbs_start = ADDR(.heap) + SIZEOF(.heap));
AnnaBridge 125:2e9cc70d1897 214
AnnaBridge 125:2e9cc70d1897 215 /* .stack section doesn't contains any symbols. It is only
AnnaBridge 125:2e9cc70d1897 216 * used for linker to reserve space for the main stack section
AnnaBridge 125:2e9cc70d1897 217 * WARNING: .stack should come immediately after the last secure memory
AnnaBridge 125:2e9cc70d1897 218 * section. This provides stack overflow detection. */
AnnaBridge 125:2e9cc70d1897 219 .stack (NOLOAD):
AnnaBridge 125:2e9cc70d1897 220 {
AnnaBridge 125:2e9cc70d1897 221 __StackLimit = .;
AnnaBridge 125:2e9cc70d1897 222 *(.stack*);
AnnaBridge 125:2e9cc70d1897 223 . += 0x800 - (. - __StackLimit);
AnnaBridge 125:2e9cc70d1897 224 } > RAM
AnnaBridge 125:2e9cc70d1897 225
AnnaBridge 125:2e9cc70d1897 226 /* Set stack top to end of RAM */
AnnaBridge 125:2e9cc70d1897 227 __StackTop = ORIGIN(RAM) + LENGTH(RAM);
AnnaBridge 125:2e9cc70d1897 228 __StackLimit = __StackTop - SIZEOF(.stack);
AnnaBridge 125:2e9cc70d1897 229 PROVIDE(__stack = __StackTop);
AnnaBridge 125:2e9cc70d1897 230
AnnaBridge 125:2e9cc70d1897 231 }