Driver for the WDT (Watchdog Timer).
This driver provides access to the main features of the WDT controller. The Watchdog Timer can be used to prevent system lock-up if the software becomes trapped in a deadlock. It features a 12-bit down counter that allows a watchdog period of up to 16 seconds (slow clock at 32.768 kHz). It can generate a general reset or a processor reset only. In addition, it can be stopped while the processor is in debug mode or idle mode.
Macros | |
#define | WDT_KEY_PASSWORD 0xA5000000 |
#define | WDT_MAX_VALUE 4095 |
#define | WDT_SLCK_DIV 128 |
Functions | |
void | wdt_disable (Wdt *p_wdt) |
Disable the watchdog timer. More... | |
uint32_t | wdt_get_status (Wdt *p_wdt) |
Check the watchdog timer status. More... | |
uint32_t | wdt_get_timeout_value (uint32_t ul_us, uint32_t ul_sclk) |
Get counter value or permitted range value of watchdog timer from the desired timeout period (in us). More... | |
uint32_t | wdt_get_us_timeout_period (Wdt *p_wdt, uint32_t ul_sclk) |
Get the timeout period of the WatchDog Timer in microseconds. More... | |
void | wdt_init (Wdt *p_wdt, uint32_t ul_mode, uint16_t us_counter, uint16_t us_delta) |
Initialize watchdog timer with the given mode. More... | |
void | wdt_restart (Wdt *p_wdt) |
Restart the watchdog timer. More... | |
#define WDT_KEY_PASSWORD 0xA5000000 |
Referenced by wdt_restart().
#define WDT_MAX_VALUE 4095 |
Referenced by wdt_get_timeout_value().
#define WDT_SLCK_DIV 128 |
Referenced by wdt_get_timeout_value(), and wdt_get_us_timeout_period().
void wdt_disable | ( | Wdt * | p_wdt | ) |
Disable the watchdog timer.
uint32_t wdt_get_status | ( | Wdt * | p_wdt | ) |
Check the watchdog timer status.
uint32_t wdt_get_timeout_value | ( | uint32_t | ul_us, |
uint32_t | ul_sclk | ||
) |
Get counter value or permitted range value of watchdog timer from the desired timeout period (in us).
ul_us | The desired timeout period (in us). |
ul_sclk | The slow clock on board (in Hz). |
References max, min, WDT_INVALID_ARGUMENT, WDT_MAX_VALUE, and WDT_SLCK_DIV.
uint32_t wdt_get_us_timeout_period | ( | Wdt * | p_wdt, |
uint32_t | ul_sclk | ||
) |
Get the timeout period of the WatchDog Timer in microseconds.
p_wdt | Pointer to a WDT instance. |
ul_sclk | The slow clock frequency (in Hz). |
References WDT_SLCK_DIV.
void wdt_init | ( | Wdt * | p_wdt, |
uint32_t | ul_mode, | ||
uint16_t | us_counter, | ||
uint16_t | us_delta | ||
) |
Initialize watchdog timer with the given mode.
p_wdt | Pointer to a WDT instance. |
ul_mode | Bitmask of watchdog timer mode. |
us_counter | The value loaded in the 12-bit Watchdog Counter. |
us_delta | The permitted range for reloading the Watchdog Timer. |
void wdt_restart | ( | Wdt * | p_wdt | ) |
Restart the watchdog timer.
References WDT_KEY_PASSWORD.