I am new to ARM cortex M processors and while doing some coding on my board using KEIL i found that
at location 0x0000_0000 my debugger shows the value "0x2000_0660" . Thats the value of the MSP loaded.
but i really dont understand how linker arrived at that value using __initial_sp
i checked in the startup file and found this
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
Stack_Size EQU 0x00000400
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
How this turns out to be __initial_sp = 0x2000_0660 ???