AP_HAL_AVR: add panic method to scheduler

This commit is contained in:
Pat Hickey 2012-12-17 16:25:44 -08:00 committed by Andrew Tridgell
parent c86004d676
commit 9656b0ad0e
2 changed files with 12 additions and 0 deletions

View File

@ -210,6 +210,17 @@ void AVRScheduler::end_atomic() {
}
}
void AVRScheduler::panic(const prog_char_t* errormsg) {
/* Suspend timer processes. We still want the timer event to go off
* to run the _failsafe code, however. */
_timer_suspended = true;
/* Print the error message on both ports */
hal.uartA->println_P(errormsg);
hal.uartC->println_P(errormsg);
/* Spin forever. */
for(;;);
}
void AVRScheduler::reboot() {
hal.uartA->println_P(PSTR("GOING DOWN FOR A REBOOT\r\n"));
hal.scheduler->delay(100);

View File

@ -37,6 +37,7 @@ public:
void resume_timer_procs();
void begin_atomic();
void end_atomic();
void panic(const prog_char_t *errormsg);
void reboot();
private: