Fix: Return after setting breakpoint when ocd is detected instead of continuing into the panic routine

This commit is contained in:
Jeroen Domburg
2016-08-30 17:55:20 +08:00
parent 23c235506f
commit c6394ed2ce

View File

@@ -150,7 +150,6 @@ static void setFirstBreakpoint(uint32_t pc) {
"or a4, a4, a3\n" \ "or a4, a4, a3\n" \
"wsr.ibreakenable a4\n" \ "wsr.ibreakenable a4\n" \
::"r"(pc):"a3","a4"); ::"r"(pc):"a3","a4");
return;
} }
void xt_unhandled_exception(XtExcFrame *frame) { void xt_unhandled_exception(XtExcFrame *frame) {
@@ -170,6 +169,7 @@ void xt_unhandled_exception(XtExcFrame *frame) {
//Stick a hardware breakpoint on the address the handler returns to. This way, the OCD debugger //Stick a hardware breakpoint on the address the handler returns to. This way, the OCD debugger
//will kick in exactly at the context the error happened. //will kick in exactly at the context the error happened.
setFirstBreakpoint(regs[1]); setFirstBreakpoint(regs[1]);
return;
} }
panicPutStr(". Exception was unhandled.\r\n"); panicPutStr(". Exception was unhandled.\r\n");
commonErrorHandler(frame); commonErrorHandler(frame);