你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】窗口看门狗启动时异常复位问题

[复制链接]
STMCU小助手 发布时间:2022-2-25 19:49
前言
窗口看门狗(Window watchdog, WWDG),提供了一种在指定时间窗内刷新看门狗的功能。同时 WWDG 提供了一个提前唤醒中断,能够在 WWDG 计数器值降到触发复位的上一个值时触发。实际应用中,可以在此中断被触发时,刷新 WWDG,并记录当前运行信息,以满足运行错误信息记录等功能需求。

问题描述
问题复现平台: STM3210E_EVAL 板
                       IAR for ARM v7.70.1
问题复现程序: 基于 STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples
问题描述:在应用开发过程中,WWDG 开启后,WWDG 的提前唤醒中断立即被触发,并且微控制器复位。
主要实现程序如下所示。
  1. ……
  2. WWDG_SetPrescaler(WWDG_Prescaler_8);
  3. WWDG_SetWindowValue(80);
  4. /* 在例程基础上添加,开启窗口看门狗中断 */
  5. ……
  6. NVIC_Init(&NVIC_InitStructure);
  7. WWDG_ClearFlag();
  8. WWDG_EnableIT();
  9. WWDG_Enable(127);
  10. ……
  11. While(1)
  12. {
  13. ……
  14. WWDG_SetCounter(127);
  15. ……
  16. }
复制代码

如流程图所示,在应用程序正常运行时,WWDG 中断不会被触发。当程序跑飞等异常情况出现时,由于未能在及时刷新 WWDG,导致 WWDG 中断事件被触发。在中断服务程序中刷新 WWDG,以免微控制器复位,造成运行信息被破坏,并保存运行信息以供错误分析。

9BD)%)FDIY5`E9FAN(}8S1N.png


问题分析
利用 IAR 以及 ST-Link V2 进行在线调试,在执行完 WWDG_Enable(127) 指令后,WWDG 寄存器值如下所示。

BBJ@S8Q%P`MNU50KF4D9P{G.png

其中提前唤醒中断标志 WDGA@WWDG_SR 被置位,意味着提前唤醒中断触发。在中断服务程序中,存在刷新 WWDG 指令。此时计数器值 T=0x7F@WWDG_CR 不在窗口内(W=0x50@WWDG_CFR),而 WWDG 在非窗口中(不允许刷新阶段)重装载计数器值会导致复位,如下图所示。

HU[@GW)6A7XC]L{CZE@T`H3.png

经过验证,针对这种情况,有两个解决方案。
解决方案一:
在使能 WWDG 之后清除提前唤醒中断标志位 EWI@WWDG_SR,然后使能提前唤醒中断。如下所示。
  1. ……
  2. WWDG_SetWindowValue(80);
  3. /* 在例程基础上添加,开启窗口看门狗中断 */
  4. WWDG_Enable(127);
  5. ……
  6. NVIC_Init(&NVIC_InitStructure);
  7. WWDG_ClearFlag();
  8. WWDG_EnableIT();
  9. ……
复制代码

解决方案二:
配置计数器装载值不大于窗口值。如下所示。
  1. WWDG_SetWindowValue(127);
  2. /* 在例程基础上添加,开启窗口看门狗中断 */
  3. ……
  4. NVIC_Init(&NVIC_InitStructure);
  5. WWDG_ClearFlag();
  6. WWDG_EnableIT();
  7. WWDG_Enable(127);
  8. ……
复制代码

同时,需要确保唤醒中断的服务程序中存在中断标志位 EWI@WWDG_SR 判断语句,以避免异常。


总结
WWDG 不仅提供了一种有别于独立看门狗的程序监测方法。同时提前唤醒中断的存在,也为故障信息的保存以及分析,提供了一种途径。但是,需要注意的是窗口看门狗的时钟源来源于 PCLK1,在STOP、STANDBY 低功耗模式下,WWDG 功能被停止。

收藏 评论0 发布时间:2022-2-25 19:49

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版