summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Daniel <cd@maintech.de>2013-02-14 16:27:46 +0100
committerChristian Daniel <cd@maintech.de>2013-02-14 16:27:46 +0100
commit159bd582a4faffc80751bb45b62672d63d02570a (patch)
tree3b058c382cbe3b0075f44bad974fcf848e3c1ddd
parent43e6448d0cc5ba2582e5cf3339275dad3473f7b0 (diff)
improve fault reporting for radio application
-rw-r--r--firmware/osmosdr-radioapp/src/vectors.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/firmware/osmosdr-radioapp/src/vectors.c b/firmware/osmosdr-radioapp/src/vectors.c
index c942732..46c2fce 100644
--- a/firmware/osmosdr-radioapp/src/vectors.c
+++ b/firmware/osmosdr-radioapp/src/vectors.c
@@ -129,6 +129,9 @@ static void faultReport(const char *pFaultName, const u32* sp)
cfsr = SCB->CFSR;
mmfar = SCB->MMFAR;
bfar = SCB->BFAR;
+
+ dprintf("HFSR: 0x%08x SHCSR: 0x%08x\n", SCB->HFSR, SCB->SHCSR);
+ dprintf("ICSR: 0x%08x CFSR: 0x%08x\n", SCB->ICSR, SCB->CFSR);
dprintf("MMSR: 0x%02x\n", (cfsr & 0xff));
if((cfsr & CFSR_MMARVALID) != 0)
dprintf("MMAR: 0x%08x\n", mmfar);
@@ -137,7 +140,10 @@ static void faultReport(const char *pFaultName, const u32* sp)
dprintf("BFAR: 0x%08x\n", bfar);
dprintf("UFSR: 0x%04x HFSR: 0x%08x\n", ((cfsr >> 16) & 0xffff), (u32)SCB->HFSR);
dprintf("DFSR: 0x%08x AFSR: 0x%08x\n", (u32)SCB->DFSR, (u32)SCB->AFSR);
- dprintf(" LR: 0x%08x PC: 0x%08x\n", sp[5], sp[6]);
+ //dprintf(" LR: 0x%08x PC: 0x%08x\n", sp[5], sp[6]);
+ dprintf("STACK:\n");
+ for(int i = 0; i < 16; i++)
+ dprintf("%02x: %08x\n", i, sp[i]);
// Clear fault status bits (write-clear)
SCB->CFSR = SCB->CFSR;