Memory layout

The current memory layout used by cpik is the following6:
Name Addresses Size Usage
Soft Stack [GG+1->TT]   software stack, grows upward to top of memory
Globals [PP+1->GG]   global variables
Scratch [22->PP] SCRATCH_SIZE-20 returned value area
FP aux [14-21] 8 auxiliary zone for FP routines
Registers [2->13] 12 _r0,_r1,_r2,_r3,_r4,_r5 pseudo-registers
C18_errno [1->1] 1 reserved by libraries
IT mask [0->0] 1 reserved by RTL

There is currently no reserved zone to implement a heap for dynamic memory allocation (ie: malloc(), free() and so on). However such a zone could be obviously implemented at the end of physical memory, and must expand from top (high addresses) to bottom.



Footnotes

... following6
This layout has changed in V0.6.0
Alain Gibaud 2015-07-09