commit e2207b87cb4a174612b3deb8760740316ce78c24
parent 309670bcb66c83429ca9db76993828482ab64d09
Author: Brian Swetland <swetland@frotz.net>
Date:   Sun, 28 Jun 2015 10:50:30 -0700
debugger: catch fatal vectors, start making vc configurable
Diffstat:
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tools/debugger-commands.c b/tools/debugger-commands.c
@@ -363,12 +363,15 @@ int do_download(int argc, param *argv) {
 	return 0;
 }
 
+// vector catch flags to apply
+u32 vcflags = DEMCR_VC_HARDERR | DEMCR_VC_BUSERR | DEMCR_VC_STATERR | DEMCR_VC_CHKERR;
+
 int do_reset(int argc, param *argv) {
 	swdp_core_halt();	
-	swdp_ahb_write(DEMCR, DEMCR_TRCENA);
+	swdp_ahb_write(DEMCR, DEMCR_TRCENA | vcflags);
 	/* core reset and sys reset */
 	swdp_ahb_write(0xe000ed0c, 0x05fa0005);
-	swdp_ahb_write(DEMCR, DEMCR_TRCENA);
+	swdp_ahb_write(DEMCR, DEMCR_TRCENA | vcflags);
 	return 0;
 }
 
@@ -383,12 +386,12 @@ int do_reset_hw(int argc, param *argv) {
 int do_reset_stop(int argc, param *argv) {
 	swdp_core_halt();
 	// enable vector-trap on reset, enable DWT/FPB
-	swdp_ahb_write(DEMCR, DEMCR_VC_CORERESET | DEMCR_TRCENA);
+	swdp_ahb_write(DEMCR, DEMCR_VC_CORERESET | DEMCR_TRCENA | vcflags);
 	// core reset and sys reset
 	swdp_ahb_write(0xe000ed0c, 0x05fa0005);
 	//swdp_core_wait_for_halt();
 	do_stop(0,0);
-	swdp_ahb_write(DEMCR, DEMCR_TRCENA);
+	swdp_ahb_write(DEMCR, DEMCR_TRCENA | vcflags);
 	return 0;
 }