From f2c9234341b18d94c6056d72a496753c64619f08 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 May 2011 00:17:04 -0700 Subject: [PATCH] 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 --- src-avr/ao_demo.c | 3 ++- src-avr/ao_led.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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 -- 2.47.2