查看: 3036|回复: 6

[求助] ks22看门狗问题

[复制链接]
  • TA的每日心情
    开心
    2017-4-19 12:05
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    78

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    387
    最后登录
    2025-6-19
    发表于 2016-8-28 12:30:30 | 显示全部楼层 |阅读模式
    官方例程中使用窗口看门狗
    while (GetTimerOutputValue(wdog_base) < config.windowValue)
            {
            }

            for (uint32_t i = 0; i < 10; i++)
            {
                WDOG_Refresh(wdog_base);
                PRINTF("--- Refresh wdog %d time ---\r\n", i + 1);
                while (GetTimerOutputValue(wdog_base) < config.windowValue)
                {
                }
            }
         WDOG_Refresh(wdog_base);
            /*Wait until refresh squence takes effect*/
            while (GetTimerOutputValue(wdog_base) >= config.windowValue)
            {
            }
            /*Refresh before window value to trigger reset*/
            WDOG_Refresh(wdog_base);/////////////////////////////////////将此句注释掉就不会产生复位,将打印出下面的log,不理解
            /*If reset is not generated, you will see this log*/
            PRINTF("\r\n--- Reset failed---\r\n");



    对于这个看门狗例程不是很懂,他的WDOG_Refresh(wdog_base);是啥意思? Watchdog refresh register. A sequence of 0xA602 followed by 0xB480 within 20 bus clock cycles written
    to this register refreshes the WDOG and prevents it from resetting the system. 手册上这样描述的。为什么给他WDOG_Refresh(wdog_base)后反而复位,注释掉就不复位了?
    本人小白,不太懂,就大神给讲解一下,先在此谢过了。

    我知道答案 目前已有6人回答
    今天好开心
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-19 12:05
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    78

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    387
    最后登录
    2025-6-19
     楼主| 发表于 2016-8-28 12:41:27 | 显示全部楼层
    还有就是他这个窗口看门狗,In this mode, the watchdog can be refreshed only when
    the timer has reached a value greater than or equal to this window length. 在这种模式下,只有当定时器的值达到或者超过窗口长度才可以更新,这里设置的初始值就比窗口值大,在减到窗口值之前就可以一直更新。总之不太理解这个程序了
    今天好开心
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24852
    最后登录
    2025-7-17
    发表于 2016-8-29 08:40:39 | 显示全部楼层
    楼主你好!
    你在做refresh的时候,有没有单步跑?
    If these two values are written more than 20 bus cycles apart or if something
    other than these two values is written to the register, a watchdog reset, or interrupt-thenreset
    if enabled, is issued to the system.
    如果这个refresh不能在20个bus时钟内完成,会导致系统复位。
    所以你测试的时候,可以全速运行测试。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24852
    最后登录
    2025-7-17
    发表于 2016-8-29 08:43:05 | 显示全部楼层
    刘卫强 发表于 2016-8-28 12:41
    还有就是他这个窗口看门狗,In this mode, the watchdog can be refreshed only when
    the timer has reache ...

    何为windowed模式呢?简单的讲,看门狗的windowed模式就是在溢出时间之内再设置一个时间,只有超过windowed时间并且在溢出时间之内,喂狗才有效,否则被狗咬(芯片复位),详细内容,可以查看Ks系列的参考手册(reference manual)。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-19 12:05
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    78

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    387
    最后登录
    2025-6-19
     楼主| 发表于 2016-8-29 20:59:32 | 显示全部楼层
    单步调试了,单步调试的时候他会一直不正常的,也设置断点跑过,通过查看复位次数那个寄存器和程序执行顺序可以看到复位次数,谢谢了。
    今天好开心
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-17 08:07
  • 签到天数: 273 天

    连续签到: 1 天

    [LV.8]以坛为家I

    74

    主题

    2338

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7508
    最后登录
    2021-8-30
    发表于 2016-8-30 08:20:57 | 显示全部楼层
    又学到经验了,作个记号
    nxp.png

    nxpp.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24852
    最后登录
    2025-7-17
    发表于 2016-8-30 10:23:55 | 显示全部楼层
    刘卫强 发表于 2016-8-29 20:59
    单步调试了,单步调试的时候他会一直不正常的,也设置断点跑过,通过查看复位次数那个寄存器和程序执行顺序 ...

    不知道你用没有使能debug下面看门狗能够运行,如果使能了,就算打断点,停止情况下,看门狗定时器还是会工作的。
    所以为了测试准确,建议你烧进去测试看门狗的运行情况。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 05:10 , Processed in 0.102315 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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