From: Keith Packard Date: Wed, 18 May 2011 07:17:04 +0000 (-0700) Subject: src-avr: Trap accidental restart X-Git-Tag: 0.9.3~22 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=f2c9234341b18d94c6056d72a496753c64619f08;p=fw%2Faltos src-avr: Trap accidental restart Use the LED output pin to notice when avr-demo accidentally restarts and print out an error message in that case. Signed-off-by: Keith Packard --- diff --git a/src-avr/ao_demo.c b/src-avr/ao_demo.c index cb7ad786..d905cec6 100644 --- a/src-avr/ao_demo.c +++ b/src-avr/ao_demo.c @@ -35,10 +35,11 @@ main(void) ao_clock_init(); ao_serial_init(); + + ao_led_init(LEDS_AVAILABLE); ao_stdio_init(); printf ("stdio initialized\n"); // ao_debug_init(); - ao_led_init(LEDS_AVAILABLE); ao_timer_init(); ao_cmd_init(); ao_usb_init(); diff --git a/src-avr/ao_led.c b/src-avr/ao_led.c index 0e69ee3a..5183140b 100644 --- a/src-avr/ao_led.c +++ b/src-avr/ao_led.c @@ -63,6 +63,10 @@ ao_led_init(uint8_t enable) { ao_led_enable = enable; #ifdef AVR + if ((LED_DDR & enable)) { + printf ("oops! restarted\n"); + ao_panic(AO_PANIC_REBOOT); + } LED_PORT &= ~enable; LED_DDR |= enable; #else