Part Number: TM4C1294KCPDT
Other Parts Discussed in Thread: TM4C1294NCPDT
Tool/software: Code Composer Studio
I have added BKPT instructions at the start of the various exception handlers provided in startup_ccs.c so that the handler typically look like:
static void FaultISR()
{
/* Various hardware and memory access errors arrive here.
Did you remember to turn it on? Use code like:
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
Is there enough heap and stack space? Check CPP_FEShim.cmd. Check for
recursion or large local buffers etc.
Is startup ordering correct? (Look for statics with constructors.)
Null pointer dereferencing can end up here some time after the event!
Check for references to members in bogus (low - flash) memory
See spma043 Diagnosing Software Faults in Stellaris.pdf
*/
__asm(" BKPT #2");
while(1)
;
}
However when the debugger stops on the break point the debug stack shows only two stack entries:
- FaultISR() at startup_cpp.c:275 0x00019EE0
- 0xFFFFFFF8 (no symbols are defined)
The 0xFFFFFFF8 looks like the link register value with its low bit reset.
I can get a sane stack by restoring LR from the event frame and adding 0x68 to the SP (the LR value says the FP registers were pushed). Is there some reason that process can't be followed by the debugger to show the fully unwound stack?


