diff options
Diffstat (limited to 'firmware/src/os')
-rw-r--r-- | firmware/src/os/main.c | 4 | ||||
-rw-r--r-- | firmware/src/os/wdt.c | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/firmware/src/os/main.c b/firmware/src/os/main.c index 0cc9d99..968f6ad 100644 --- a/firmware/src/os/main.c +++ b/firmware/src/os/main.c @@ -78,7 +78,9 @@ int main(void) /* Call application specific main idle function */ _main_func(); dbgu_rb_flush(); - //wdt_restart(); + + /* restart watchdog timer */ + wdt_restart(); #ifdef CONFIG_IDLE //cpu_idle(); #endif diff --git a/firmware/src/os/wdt.c b/firmware/src/os/wdt.c index 55a0e70..5f2aa50 100644 --- a/firmware/src/os/wdt.c +++ b/firmware/src/os/wdt.c @@ -23,7 +23,7 @@ #include <os/dbgu.h> #include <os/system_irq.h> -#define WDT_DEBUG +/*#define WDT_DEBUG*/ static void wdt_irq(u_int32_t sr) { @@ -39,12 +39,11 @@ void wdt_init(void) { sysirq_register(AT91SAM7_SYSIRQ_WDT, &wdt_irq); #ifdef WDT_DEBUG - AT91F_WDTSetMode(AT91C_BASE_WDTC, (0xfff << 16) | + AT91F_WDTSetMode(AT91C_BASE_WDTC, (0xff << 16) | AT91C_WDTC_WDDBGHLT | AT91C_WDTC_WDIDLEHLT | AT91C_WDTC_WDFIEN); #else - AT91F_WDTSetMode(AT91C_BASE_WDTC, (0xfff << 16) | - AT91C_WDTC_WDDBGHLT | AT91C_WDTC_WDIDLEHLT | - AT91C_WDTC_WDRSTEN); + AT91F_WDTSetMode(AT91C_BASE_WDTC, (0x80 << 16) | + AT91C_WDTC_WDRSTEN | 0x80); #endif } |