#include #include #include #include #include #include "interface_config.h" sdrv_wdt_t *wdt_type = (sdrv_wdt_t *)(uintptr_t)APB_WDT1_BASE; static bool internal_reset_switch = true; static bool external_reset_switch = false; //¿´ÃŹ·³õʼ»¯ void wdt_init(uint32_t timeoutms) { static sdrv_wdt_config_t wdt_cfg; int ret = 0; //-------------------------------------------------- sdrv_wdt_get_default_config(&wdt_cfg); if (internal_reset_switch) { wdt_cfg.int_rst.reset_en = true; sdrv_rstgen_wdt_reset_enable(RESET_WDT1, true); } if (external_reset_switch) { /* config GPIO_H12 as WDT1_RST_N function */ wdt_cfg.ext_rst.reset_en = true; wdt_cfg.ext_rst.reset_mode = 0; /* low level active */ } ret = sdrv_wdt_init(wdt_type, &wdt_cfg); ASSERT(ret == 0); // irq_attach(wdt_irq, wdt_irq_handler, NULL); // irq_enable(wdt_irq); sdrv_wdt_set_timeout(wdt_type, timeoutms); ret = sdrv_wdt_enable(wdt_type); }