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:
Fri Jan 31 10:00:06 2014 +0000
Revision:
82:0b31dbcd4769
Parent:
targets/cmsis/TARGET_Freescale/TARGET_KL46Z/TOOLCHAIN_ARM_STD/sys.cpp@33:e214068ab66c
Synchronized with git revision 74409cbd593d1daab530a57baaa563f30b04b018

Full URL: https://github.com/mbedmicro/mbed/commit/74409cbd593d1daab530a57baaa563f30b04b018/

Who changed what in which revision?

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