Mark,
Great minds think alike. I was just doing that. :smileyhappy:
Everything seems okay until I get to instruction "push {r7,lr}". Running dissassembly instruction causes the callstack to expand like this. Before and after this instruction is executed, the LR holds 0xE313 which is the correct value. The value in R7 (0x1fffc7f0) is actually pushed to the SP, not the LR. Note: My stack starts at 0x1fffC800. So, having the SP updated to this value seems reasonable to me. However, why does the assembly instruction indicate LR when SP is rightfully updated? And, why does the callstack expand if LR isn't actually updated?
Just speculating here, but is the fault actually the Compiler using the wrong instruction which has confused the debugger?