查看: 6345|回复: 24

[求助] MKE02看门狗问题

[复制链接]

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
发表于 2015-4-2 09:12:24 | 显示全部楼层 |阅读模式
MKE02复制demo中看门狗的配置,但实际测试看门狗不起作用,测试时不给喂狗程序也不复位,不知道是不是哪里还需更改?
我知道答案 目前已有24人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-2 09:20:45 | 显示全部楼层
楼主,你代码是自己写的还是用的官方的代码。
你的基础代码里,start的地方,是不是上来就关掉看门狗了?
先检查下你的start.c里面,是不是有关看门狗的动作。

回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-2 09:32:33 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-2 09:20
楼主,你代码是自己写的还是用的官方的代码。
你的基础代码里,start的地方,是不是上来就关掉看门狗了?
...

用的官方的代码,WDOG_DisableWDOGEnableUpdate(); 这句话删掉吗?
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-2 09:33:37 | 显示全部楼层
yinshaojie 发表于 2015-4-2 09:32
用的官方的代码,WDOG_DisableWDOGEnableUpdate(); 这句话删掉吗?

是的,屏蔽掉,默认复位后看门口是使能的,程序中在start函数里面,上来是先关掉看门狗的。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-2 09:41:21 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-2 09:33
是的,屏蔽掉,默认复位后看门口是使能的,程序中在start函数里面,上来是先关掉看门狗的。 ...

void start(void)
{

        /* Disable the watchdog timer but enable update */
    WDOG_DisableWDOGEnableUpdate();   
   
#ifndef __GNUC__
#ifndef KEIL
        /* Copy any vector or data sections that need to be in RAM */
        common_startup();
#endif
#endif

        /* Jump to main process */
        main();

        /* No actions to perform after this so wait forever */
        while(1);
}
void SystemInit( void )
{
#if !defined(ENABLE_WDOG)   
        /* Disable the watchdog timer */
    WDOG_Disable();
#else
        /* Disable the watchdog timer but enable update */
    WDOG_DisableWDOGEnableUpdate();   
#endif
       
}
这两个函数里面都有,是屏蔽哪一个的?
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-2 09:49:53 | 显示全部楼层

你调用SystemInit函数没有?
如果调用,那么也要屏蔽掉,start函数里面一定要屏蔽,因为肯定会调用这个函数。
你可以都屏蔽了。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-2 14:46:16 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-2 09:49
你调用SystemInit函数没有?
如果调用,那么也要屏蔽掉,start函数里面一定要屏蔽,因为肯定会调用这个函 ...

两个地方都屏蔽了还是不行
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-3 09:15:24 | 显示全部楼层
yinshaojie 发表于 2015-4-2 14:46
两个地方都屏蔽了还是不行

你怎么配置的?
官方有个看门狗的代码,你参考下,那个如果不喂狗是会复位的。
KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\build\iar\ke02\WDOG_Feed_demo
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-7 09:13:46 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-3 09:15
你怎么配置的?
官方有个看门狗的代码,你参考下,那个如果不喂狗是会复位的。
KEXX_DRIVERS_V1.2.1_DEVD ...

    WDOG_Enable();
          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);
完全参考DEMO的
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-7 14:55:04 | 显示全部楼层
yinshaojie 发表于 2015-4-7 09:13
WDOG_Enable();
          sWDOGConfig.sBits.bWaitEnable   = TRUE;
    sWDOGConfig.sBits.bStopEnable    ...

你把start里面的关闭看门狗屏蔽了,你程序还能跑起来?
我不关闭看门狗,并且不配置,就会一直跑不起来,因为一直在复位。
另外,我试了下,在start中,上来之后,先喂狗,然后配置1KHZ的时钟源,并且1S钟复位,这个也是成功的,结合WDOG的寄存器,你可以看到,当CNT的值到达TOVAL的值时,就会自动复位了
下面是我家的一段配置看门狗的代码,你可以试下,只加这段代码,屏蔽其他所有主程序中的配置看门狗代码:
void start(void)
{
  WDOG_Feed();
      WDOG->CS1       |= WDOG_CS1_UPDATE_MASK;

    /* First unlock the watchdog so that we can write to registers */
      
    WDOG_Unlock();
    WDOG->CS2    |=  0x01;
    WDOG->TOVAL  =  1000;
    WDOG_Feed();
#ifndef __GNUC__
#ifndef KEIL
    /* Copy any vector or data sections that need to be in RAM */
    common_startup();
#endif
#endif

    /* Jump to main process */
    main();

    /* No actions to perform after this so wait forever */
    while(1);

}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-24 00:19 , Processed in 0.108144 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表