mbed SDK library sources

Fork of mbed-src by mbed official

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 Sep 25 10:30:04 2013 +0100
Revision:
30:91c1d09ada54
Synchronized with git revision 8f57c1e84759991fa81ede0da2b4aabe8530fa09

Who changed what in which revision?

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