打印
[Kinetis]

KE02看门狗复位问题

[复制链接]
1036|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fhguo1990|  楼主 | 2015-4-18 20:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
我思故我在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 | 只看该作者
如果不断重启的话,能从灯上判断出来不?

使用特权

评论回复
5
fhguo1990|  楼主 | 2015-4-18 20:04 | 只看该作者
可以,如果重启,红色的灯会闪烁(重启之前蓝色的灯闪烁)。

使用特权

评论回复
6
我是MT| | 2015-4-18 20:05 | 只看该作者
你start函数中,有没有关闭看门狗?

使用特权

评论回复
7
fhguo1990|  楼主 | 2015-4-18 20:06 | 只看该作者
我是MT 发表于 2015-4-18 20:05
你start函数中,有没有关闭看门狗?

您指的是哪个start函数?

使用特权

评论回复
8
我是MT| | 2015-4-18 20:07 | 只看该作者
fhguo1990 发表于 2015-4-18 20:06
您指的是哪个start函数?

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

使用特权

评论回复
9
fhguo1990|  楼主 | 2015-4-18 20:08 | 只看该作者
问题已解决,请参考:http://www.amobbs.com/thread-5619054-1-1.html

使用特权

评论回复
10
FSL_TICS_ZJJ| | 2015-4-20 14:51 | 只看该作者
其实关于ke看门狗不复位的问题,我已经分享过经验分享帖:

KE KEA看门狗不复位的几点说明

使用特权

评论回复
11
FSL_TICS_ZJJ| | 2015-4-27 13:01 | 只看该作者
   非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

254

帖子

2

粉丝