1 /* mbed Microcontroller Library - stackheap
2 * Copyright (C) 2009-2011 ARM Limited. All rights reserved.
4 * Setup a fixed single stack/heap memory model,
5 * between the top of the RW/ZI region and the stackpointer
14 #include "sys_helper.h"
16 extern char Image$$RW_IRAM1$$ZI$$Limit
[];
18 extern __value_in_regs
struct __initial_stackheap
__user_setup_stackheap(uint32_t R0
, uint32_t R1
, uint32_t R2
, uint32_t R3
) {
19 uint32_t zi_limit
= (uint32_t)Image$$RW_IRAM1$$ZI$$Limit
;
20 uint32_t sp_limit
= __current_sp();
22 zi_limit
= (zi_limit
+ 7) & ~0x7; // ensure zi_limit is 8-byte aligned
24 struct __initial_stackheap r
;
25 r
.heap_base
= zi_limit
;
26 r
.heap_limit
= sp_limit
- __reserved_stack_size();