You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

S32K146 MCU基于FreeRTOS的看门狗喂狗失败问题求助

S32K146 FreeRTOS环境下看门狗喂狗失败导致持续复位问题

使用S32K146 MCU与DS for ARM v2.2开发环境,在基于FreeRTOS的应用中,看门狗(WDOG)初始化后可正常触发系统复位,但所有喂狗操作均无效,系统持续复位。

WDOG配置代码

#include "watchdog1.h"

/*! watchdog1 configuration structure */
const wdog_user_config_t watchdog1_Config0 = {
    .clkSource = WDOG_LPO_CLOCK,       /* WDOG clock source */
    .opMode = {
        false,                         /* Wait Mode         */
        false,                         /* Stop Mode         */
        false                           /* Debug Mode        */
    },
    .updateEnable = true,              /* Enable/Disable further updates of the WDOG configuration */
    .intEnable = true,                /* Timeout interrupt disabled */
    .winEnable = false,                /* Enable/Disable Window mode */
    .windowValue = 0U,                 /* Window value               */
    .timeoutValue = 9000U,             /* Timeout value              */
    .prescalerEnable = true            /* WDOG prescaler             */
};

初始化与喂狗封装函数

void init_watchdog(void) {
    /* Initialize the WDOG driver */
    WDOG_DRV_Init(INST_WATCHDOG1, &watchdog1_Config0);
}

void refresh_watchdog(void) {
    WDOG_DRV_Trigger(INST_WATCHDOG1);
}

看门狗初始化调用放在main函数的初始化流程中,通过UART打印可确认系统复位状态。目前已尝试多种喂狗方式均无效:

  • 在RTOS任务的while(1)循环内或任务末尾调用refresh_watchdog()
  • 在ISR函数中执行喂狗操作(虽不规范但已尝试)
  • 创建独立RTOS任务,通过信号量触发喂狗
  • 启用FreeRTOS的configUSE_IDLE_HOOK,在空闲任务钩子函数中调用喂狗

现寻求解决该喂狗失败问题的方案。

内容的提问来源于stack exchange,提问作者ferrrnum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:31:05