There are some codes in the "Startup.s" for "User Initial Stack & Heap".
And, as per this URL http://www.keil.com/support/man/docs/armlib/armlib_chdegjfd.htm
There are another codes for "Sets up the heap and stack".
It makes me a little confused.
What is the relationship between these two "Stack & Heap Initialization"?
Are they duplicated works, or they have different and important meanings?
Hi Per,
Many Thanks.
If I write my C program (MyCprg) and use some Librarys (Lib01/Lib02), with the powerful KEIL's solution (on LPC23xx). Does the Runtime Memory Map look like the below?
----RAM-------------- 0x-6FFF-FFFF | Stack-ASM-start (Defined in the "Startup.s") | | ------------------ | Stack-MyCprg-start (__rt_entry done for me) | | Stack-MyCprg-end (__rt_entry done for me) | ------------------ | Stack-Lib01-start (__rt_entry done for me) | | Stack-Lib01-end (__rt_entry done for me) | ------------------ | Stack-Lib02-start (__rt_entry done for me) | | Stack-Lib02-end (__rt_entry done for me) | ------------------ | | Stack-ASM-end (Defined in the "Startup.s") --------------------- | Heap-ASM-end (Defined in the "Startup.s") | | ------------------ | Heap-MyCprg-start (__rt_entry done for me) | | Heap-MyCprg-end (__rt_entry done for me) | ------------------ | Heap-Lib01-start (__rt_entry done for me) | | Heap-Lib01-end (__rt_entry done for me) | ------------------ | Heap-Lib02-start (__rt_entry done for me) | | Heap-Lib02-end (__rt_entry done for me) | ------------------ | | Heap-ASM-start (Defined in the "Startup.s") --------------------- 0x-4000-1000 | ZI AREA | --------------------- | RW AREA | ----RAM-------------- 0x-4000-0100 ------------------- --------------------- | Flash | ---------------------