从一开始设计单片机程序以来我一直在问自己看门狗究竟应该如何使用?并不断的寻找权威答案。以下谈一下个人在这些年来对看门狗应用相关的一些思考和观点,错误不可避免,愿讨论并改正。1. 什么是单片机的程序跑飞? 什么是单片机的死机?所谓的程序跑飞是指 CPU 程序寄存器PC 异常改变,从而CPU 不按预定 ...
问题 控制程序工作一段时间异常重启 分析 经定位分析重启原因为看门狗复位导致 解决 经排查发现在中断服务函数中使用了FreeRTOS的系统时延函数vTaskDelay,调试发现进入vTaskDelay函数后,会在函数xTaskResumeAll中进入临界段函数, 进而发现程序会卡死在下面代码处: 上边代码表示发生一次嵌套调用时,会断言检查是否是中断调用,因为vTaskDelay不支持中断调用,所 ...
2019-04-09 15:52 0 1594 推荐指数:
从一开始设计单片机程序以来我一直在问自己看门狗究竟应该如何使用?并不断的寻找权威答案。以下谈一下个人在这些年来对看门狗应用相关的一些思考和观点,错误不可避免,愿讨论并改正。1. 什么是单片机的程序跑飞? 什么是单片机的死机?所谓的程序跑飞是指 CPU 程序寄存器PC 异常改变,从而CPU 不按预定 ...
1.需要调用 2.设置看门狗复位时间 代码时间定义的底层查看 3.喂狗操作 4.关闭看门狗 测试代码: ...
窗口看门狗(WWDG)用于发现由外部接口或者不可预期的逻辑操作导致的软件故障。这些故障会导致程序中断正常运行。当一个程序周期结束时,看门狗电路会产生一个MCU复位信号,除非在看门狗电路复位之前程序返回正常运行逻辑。当计数器减少到预设值的时候,也会产生一个复位信号。这就意味着计数器必须限制在一个指定 ...
最近在SEGGER的博客上看到一篇有关在实时操作系统使用看门狗的文章。从一个失败的太空项目出发,分析了看门狗的作用及使用,自我感觉很有启发,特此翻译此文并推荐给各位同仁。为了阅读方便,有些航天领域名词本人添加了注释,读者也可自行搜索更详细的解释。当然限于个人水平,有不当之处恳请指正 ...
我在使用STM32F767和STM32F407VG的时候,程序跑到断点处一会儿程序就复位了,关闭看门狗不出现这种问题。 解决方法(在初始化看门狗之前添加下面代码): 问题原因:我通过参考手册,确认问题出在了DBGMCU寄存器的DBG_IWDG_STOP ...
为了提搞系统的可靠性,STM32F4系列MCU有一个独立看门狗(IWDG)和一个窗口看门狗(WWDG)。今天做的实验是关于独立看门狗的。 独立看门狗使用的时钟源是内部低速振荡器LSI。因为LSE可能没接,HSE可能坏点,HSE耗着的时候HSI却观点了。。。诸多原因,LSI是最好的独立看门狗时钟 ...
独立看门狗的时钟为32k分频 可以配置为32分频,这样就是1khz,方便计算 初始化后,看门狗就启动了,不需要另外手工启动 喂狗 但,调试的时候,看门狗也会把程序复位,这是不行的,所以 找个地方把这两句放进去 ...
在esp32程序中freeRTOS任务运行的时候经常都会遇到看门狗复位的问题,会在日志中打印类似如下的消息: E (36942) task_wdt: Task watchdog got triggered. The following tasks did not reset ...