Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-src by
targets/cmsis/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/TOOLCHAIN_ARM_STD/sys.cpp@82:0b31dbcd4769, 2014-01-31 (annotated)
- 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?
User | Revision | Line number | New 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 |