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:
emilmont
Date:
Fri Jun 14 17:49:17 2013 +0100
Revision:
10:3bc89ef62ce7
Unify mbed library sources

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 10:3bc89ef62ce7 1 /* mbed Microcontroller Library - stackheap
emilmont 10:3bc89ef62ce7 2 * Copyright (C) 2009-2011 ARM Limited. All rights reserved.
emilmont 10:3bc89ef62ce7 3 *
emilmont 10:3bc89ef62ce7 4 * Setup a fixed single stack/heap memory model,
emilmont 10:3bc89ef62ce7 5 * between the top of the RW/ZI region and the stackpointer
emilmont 10:3bc89ef62ce7 6 */
emilmont 10:3bc89ef62ce7 7
emilmont 10:3bc89ef62ce7 8 #ifdef __cplusplus
emilmont 10:3bc89ef62ce7 9 extern "C" {
emilmont 10:3bc89ef62ce7 10 #endif
emilmont 10:3bc89ef62ce7 11
emilmont 10:3bc89ef62ce7 12 #include <rt_misc.h>
emilmont 10:3bc89ef62ce7 13 #include <stdint.h>
emilmont 10:3bc89ef62ce7 14
emilmont 10:3bc89ef62ce7 15 extern char Image$$RW_IRAM1$$ZI$$Limit[];
emilmont 10:3bc89ef62ce7 16
emilmont 10:3bc89ef62ce7 17 extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3) {
emilmont 10:3bc89ef62ce7 18 uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
emilmont 10:3bc89ef62ce7 19 uint32_t sp_limit = __current_sp();
emilmont 10:3bc89ef62ce7 20
emilmont 10:3bc89ef62ce7 21 zi_limit = (zi_limit + 7) & ~0x7; // ensure zi_limit is 8-byte aligned
emilmont 10:3bc89ef62ce7 22
emilmont 10:3bc89ef62ce7 23 struct __initial_stackheap r;
emilmont 10:3bc89ef62ce7 24 r.heap_base = zi_limit;
emilmont 10:3bc89ef62ce7 25 r.heap_limit = sp_limit;
emilmont 10:3bc89ef62ce7 26 return r;
emilmont 10:3bc89ef62ce7 27 }
emilmont 10:3bc89ef62ce7 28
emilmont 10:3bc89ef62ce7 29 #ifdef __cplusplus
emilmont 10:3bc89ef62ce7 30 }
emilmont 10:3bc89ef62ce7 31 #endif