
Dear Swapnil!
Swapnil Ashok Narkhede schrieb:
## Starting application at 0x0C100000 pc : [<0c140388>] lr : [<a30077cc>] sp : a2f9fe40 ip : ffffffff fp : 00000000 r10: 00000000 r9 : 00000000 r8 : a2f9ffdc r7 : 00000000 r6 : 00000007 r5 : a2fe02e4 r4 : 0c100000 r3 : 40100000 r2 : 00000001 r1 : a2fe02e4 r0 : e59ff014 Flags: nZCv IRQs off FIQs off Mode SVC_32
The contents of several registers don't look like typical data pattern but like ARM instructions. These could either be there from the copy operations or from improper initialisation of the stacks or C runtime library. Especially R0 looks like code but LR can be code, too. LR should always contain an address of valid code memory; otherwise it really look like a stack corruption. So please check your stack initialisation and sizes.
And you are aware that variables with function scope are being put on the stack and not on the heap, are you?
I recommend picking a proper JTAG debugger and steps through your initialisation code.
With best regards Andreas Schweigstill