土豆-Nanne 发表于 2015-4-1 16:48:07

KE02看门狗复位问题

现在我要给我的程序加一个看门狗功能,但是在测试看门狗的过程中,看门狗不能正常复位。
测试时,软件用的就是官方的看门狗例程;硬件用的是FRDM-KE02Z开发板。
有没有哪位朋友遇到过相关问题,花点时间帮兄弟看一下,谢谢了

鲜衣怒马 发表于 2015-4-1 16:54:04

路过帮顶,楼主最好把代码贴出来,大神们才能帮忙

土豆-Nanne 发表于 2015-4-1 16:58:23

鲜衣怒马 发表于 2015-4-1 16:54
路过帮顶,楼主最好把代码贴出来,大神们才能帮忙

以下是主函数的代码,代码基本是官方的看门狗例程,仅是屏蔽了看门狗的喂狗指令。上电后,蓝色的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 */
    }

}

postek 发表于 2015-4-1 17:55:32

如果不断重启的话,能从灯上判断出来不?

土豆-Nanne 发表于 2015-4-1 17:58:35

postek 发表于 2015-4-1 17:55
如果不断重启的话,能从灯上判断出来不?

可以,如果重启,红色的灯会闪烁(重启之前蓝色的灯闪烁)。

FSL_TICS_ZJJ 发表于 2015-4-2 14:39:36

你start函数中,有没有关闭看门狗?

FSL_TICS_ZJJ 发表于 2015-4-2 14:40:13

另外,下次发问题,直接在飞思卡尔论坛区发就行了,不需要发到子区域。

土豆-Nanne 发表于 2015-4-2 14:53:14

FSL_TICS_ZJJ 发表于 2015-4-2 14:39
你start函数中,有没有关闭看门狗?

您指的是哪个start函数?

土豆-Nanne 发表于 2015-4-2 14:53:31

FSL_TICS_ZJJ 发表于 2015-4-2 14:40
另外,下次发问题,直接在飞思卡尔论坛区发就行了,不需要发到子区域。

ok,好的

FSL_TICS_ZJJ 发表于 2015-4-3 15:16:21

土豆-Nanne 发表于 2015-4-2 14:53
您指的是哪个start函数?

看看你工程中调用start.c没有,程序在进入main之前,会有一个启动代码,也就是start.c,通常会在这里把看门狗关掉。
因为默认看门狗是使能的。
所以你检查下是不是程序中在之前就把看门狗给关掉了。

土豆-Nanne 发表于 2015-4-8 09:43:58

问题已解决,请参考:http://www.amobbs.com/thread-5619054-1-1.html,非常感谢飞思卡尔的工程师FSL_TICS_ZJJ的帮助!

土豆-Nanne 发表于 2015-4-8 10:00:06

FSL_TICS_ZJJ 发表于 2015-4-3 15:16
看看你工程中调用start.c没有,程序在进入main之前,会有一个启动代码,也就是start.c,通常会在这里把看 ...

请问如何结贴?

FSL_TICS_ZJJ 发表于 2015-4-8 11:45:58

土豆-Nanne 发表于 2015-4-8 10:00
请问如何结贴?

非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.

土豆-Nanne 发表于 2015-4-8 14:54:06

RE: KE02看门狗复位问题

本帖最后由 土豆-Nanne 于 2015-4-8 14:55 编辑

FSL_TICS_ZJJ 发表于 2015-4-8 11:45
非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决. ...

好的,谢谢,此帖已结
页: [1]
查看完整版本: KE02看门狗复位问题