diff --git a/bsp/nrf5x/libraries/drivers/drv_wdt.c b/bsp/nrf5x/libraries/drivers/drv_wdt.c index 168b1b8ac5f4566e6d086aa37c697ffb03ae9b3d..43769b2c104ee5058f653fe6852e42a06420a315 100644 --- a/bsp/nrf5x/libraries/drivers/drv_wdt.c +++ b/bsp/nrf5x/libraries/drivers/drv_wdt.c @@ -6,6 +6,7 @@ * Change Logs: * Date Author Notes * 2020-08-18 ylz0923 first version + * 2021-08-12 chenyingchun optimize wdt_control arg usage */ #include @@ -42,7 +43,7 @@ static rt_err_t wdt_control(rt_watchdog_t *wdt, int cmd, void *arg) break; /* set watchdog timeout */ case RT_DEVICE_CTRL_WDT_SET_TIMEOUT: - nrf5x_wdt_cfg.reload_value = (rt_uint32_t)arg * 1000; + nrf5x_wdt_cfg.reload_value = (*((rt_uint32_t*)arg)) * 1000; break; case RT_DEVICE_CTRL_WDT_GET_TIMEOUT: *((rt_uint32_t*)arg) = nrf5x_wdt_cfg.reload_value; @@ -79,9 +80,10 @@ INIT_BOARD_EXPORT(rt_wdt_init); static int wdt_sample(int argc, char *argv[]) { + rt_uint32_t timeout = 2; /* 溢出时间,单位:秒*/ rt_device_t wdt = rt_device_find("wdt"); rt_device_init(wdt); - rt_device_control(wdt, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, (void *)2); + rt_device_control(wdt, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout); rt_device_control(wdt, RT_DEVICE_CTRL_WDT_START, RT_NULL); } MSH_CMD_EXPORT(wdt_sample, wdt sample);