[Kinetis] KE02看门狗复位问题

[复制链接]
 楼主| fhguo1990 发表于 2015-4-18 20:02 | 显示全部楼层 |阅读模式
现在我要给我的程序加一个看门狗功能,但是在测试看门狗的过程中,看门狗不能正常复位。
测试时,软件用的就是官方的看门狗例程;硬件用的是FRDM-KE02Z开发板。
我思故我在12345 发表于 2015-4-18 20:02 | 显示全部楼层
楼主最好把代码贴出来,大神们才能帮忙
 楼主| fhguo1990 发表于 2015-4-18 20:03 | 显示全部楼层
我思故我在12345 发表于 2015-4-18 20:02
楼主最好把代码贴出来,大神们才能帮忙

以下是主函数的代码,代码基本是官方的看门狗例程,仅是屏蔽了看门狗的喂狗指令。上电后,蓝色的LED开始闪烁,可见程序并未复位。

int main (void)
{
    WDOG_ConfigType sWDOGConfig = {0};    /*! < watchdog configuration structure */

    /* Perform processor initialization */
    sysinit();

    sWDOGConfig.sBits.bWaitEnable   = TRUE;
    sWDOGConfig.sBits.bStopEnable   = TRUE;
    sWDOGConfig.sBits.bDbgEnable    = TRUE;
    sWDOGConfig.sBits.bUpdateEnable = FALSE;
    sWDOGConfig.sBits.bDisable      = FALSE;        /* enable WDOG */
    sWDOGConfig.sBits.bClkSrc       = WDOG_CLK_INTERNAL_1KHZ;
    sWDOGConfig.u16TimeOut          = 1000;  /*< 1s */
    sWDOGConfig.u16WinTime          = 0;  

    WDOG_Init(&sWDOGConfig);

    printf("\nRunning the wdog_feed_demo project.\n");

    if(WDOG_IsReset())                      /*!< check if wathdog reset happens */
    {
        /*! watchdog happens. */
        LED0_Init();                        /*!< initialize red light */
        while(1)
        {
            LED0_Toggle();                  /*!< flash red light if watchdog reset occurs */
            WDOG_Feed();            
            DelayUS(50000);                 /*!< delay around 50ms */
        }
    }
    /*! watchdog does not happens, then flash blue led. */
    LED2_Init();                            /*!< initialize blue light */
    while(1)
    {
        LED2_Toggle();                      /*!< flash blue light if no watchdog reset occurs */
        //WDOG_Feed();
        DelayUS(50000);                     /*!< delay around 50ms */
    }

}
我思故我在12345 发表于 2015-4-18 20:04 | 显示全部楼层
如果不断重启的话,能从灯上判断出来不?
 楼主| fhguo1990 发表于 2015-4-18 20:04 | 显示全部楼层
可以,如果重启,红色的灯会闪烁(重启之前蓝色的灯闪烁)。
我是MT 发表于 2015-4-18 20:05 | 显示全部楼层
你start函数中,有没有关闭看门狗?
 楼主| fhguo1990 发表于 2015-4-18 20:06 | 显示全部楼层
我是MT 发表于 2015-4-18 20:05
你start函数中,有没有关闭看门狗?

您指的是哪个start函数?
我是MT 发表于 2015-4-18 20:07 | 显示全部楼层
fhguo1990 发表于 2015-4-18 20:06
您指的是哪个start函数?

看看你工程中调用start.c没有,程序在进入main之前,会有一个启动代码,也就是start.c,通常会在这里把看门狗关掉。
因为默认看门狗是使能的。
所以你检查下是不是程序中在之前就把看门狗给关掉了。
 楼主| fhguo1990 发表于 2015-4-18 20:08 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-20 14:51 | 显示全部楼层
其实关于ke看门狗不复位的问题,我已经分享过经验分享帖:

KE KEA看门狗不复位的几点说明
FSL_TICS_ZJJ 发表于 2015-4-27 13:01 | 显示全部楼层
   非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

254

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

23

主题

254

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部