26 lines
475 B
C
26 lines
475 B
C
|
// Watchdog handler on STM32F4
|
||
|
//
|
||
|
// Copyright (C) 2019 Kevin O'Connor <kevin@koconnor.net>
|
||
|
//
|
||
|
// This file may be distributed under the terms of the GNU GPLv3 license.
|
||
|
|
||
|
#include "internal.h" // IWDG
|
||
|
#include "sched.h" // DECL_TASK
|
||
|
|
||
|
void
|
||
|
watchdog_reset(void)
|
||
|
{
|
||
|
IWDG->KR = 0xAAAA;
|
||
|
}
|
||
|
DECL_TASK(watchdog_reset);
|
||
|
|
||
|
void
|
||
|
watchdog_init(void)
|
||
|
{
|
||
|
IWDG->KR = 0x5555;
|
||
|
IWDG->PR = 0;
|
||
|
IWDG->RLR = 0x0FFF; // 512ms timeout
|
||
|
IWDG->KR = 0xCCCC;
|
||
|
}
|
||
|
DECL_INIT(watchdog_init);
|