当时遇到的一个问题是,某次修改代码后编译烧写时,出现了一个逐项选择的菜单,就随便选了下,结果后续运行程序时,每过一段时间就会自动重启ESP8266模块,最开始以为是硬件坏了,然后就拿了块新板子,发现还是会崩。拿之前的旧程序,仍然崩溃。

至此,已经基本排除了程序代码问题和硬件问题,肯定是配置问题。注意到官方的sniffer进程可以正常跑。然后对自己的程序进行线程的排查,发现只有开启了一个使用timer的线程的时候,才会重置。那么问题肯定出在配置上。检查menuconfig发现watchdog被打开了但是我们的程序中没有喂狗操作。而watchdog功能要依赖于timer,进而需要依赖于timer模块的初始化函数,即只要调用了timer的初始化函数就会定时重置。至此,定位原因,关闭选项重新编译烧写,世界恢复到正轨了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我是分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以下转自https://blog.csdn.net/x1987200567/article/details/53410492

Watchdog启动之后,系统会在一定时间间隔后重启,这样可以防止系统在遇到死机或者突然崩溃时无法继续运行。若系统死机或者突然崩溃,在一定时间过后,Watchdog会重启系统,使系统恢复运行。

在正常的系统运行过程中,Watchdog若一直不断重启系统,会严重影响到系统的正常工作,因此需要一个程序在后台喂狗,防止系统重启,这样watchdog只有在系统崩溃,喂狗程序无法正常工作的时候重启系统。

Watchdog超时之后,会发送一个内部系统重启信号WDOG_RESET_B_DEB,给SRC(System RestController)。

Watchdog的功能:

1、Timeout event:用户可以设定timeout的时间,通过写Watchdog Control Register的WT(watchdog timeoutfield),设定timeout。当Watchdog enable 之后,watchdog 会读取WT中的timeout时间,counter开始倒计时,当counter为0时,会发送WDOG_RESET_B_DEB,使watchdog重启。

当timeout被设定之后,在counter为0之前,可以通过reload the counter,来重置counter的计时器时间。reload the counter的方法是向watchdog service register(WDOG_WSR)中先写入值0x5555,然后写入值0xAAAA(这两个值必须连续写入,必须先写入0x5555,否则counter是不会被reload的,watchdog 也会在counter计时为0时重启系统)。(寄存器地址以及功能可在spec中查到)。

后台喂狗程序就是通过不断reload counter来实现的。

2、Interrupt event:watchdog 可以产生一个irq,当timeout快发生的时候,IRQ的产生时间可以通过读写WDOG_WICR来控制。
--------------------- 
作者:思则变 
来源:CSDN 
原文:https://blog.csdn.net/x1987200567/article/details/53410492 
版权声明:本文为博主原创文章,转载请附上博文链接!

watchdog之喂狗分析相关推荐

  1. Android system server之WatchDog看门狗分析

    android -- WatchDog看门狗分析 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系 ...

  2. 应用与系统稳定性第五篇---Watchdog原理和问题分析

    前面已经这个系列已经更新了4篇,死机重启问题分析中,Watchdog问题最为常见,今天接着写一写Watchdog问题的分析套路以及工作原理. 应用与系统稳定性第一篇---ANR问题分析的一般套路 应用 ...

  3. RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你]

    RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 概述 程序设计完成后,要开始考虑系统整体的稳定性了. 在设备上线后,可能因为程序设计不合理.硬件设计有 bug,电气干扰.静电噪声.电源故障 ...

  4. linux的watchdog代码分析,Watchdog机制以及问题分析

    目录 1. 概览 Watchdog的中文的"看门狗",有保护的意思.最早引入Watchdog是在单片机系统中,由于单片机的工作环境容易受到外界磁场的干扰,导致程序"跑飞& ...

  5. sparc架构代码分析-NMI看门狗分析

    性能监测功能能够统计软件运行过程中发生的各种事件,比如执行分支指令的次数,发生tlb miss的次数等,从而给软件的性能给出评判,它通常是被perf,oprofile等性能诊断工具所使用.       ...

  6. java实现看门狗_Watchdog看门狗分析

    看门狗最初的意义是因为早期嵌入式设备上的程序经常跑飞(比如说电磁干扰等),所以专门设置了一个硬件看门狗,每隔一段时间,看门狗就去检查某个参数是不是被设置了,如果发现该参数被设置了,则判断为系统出错,然 ...

  7. independent watchdog 独立看门狗 window watchdog 窗口看门狗

    看门狗(watchdog) 防止硬件因外界电磁场干扰或其他导致不能正常工作的,导致不可预料后果,对芯片进行实时检测的模块或芯片称为看门狗. 看门狗工作过程 启动看门狗后,有一个计数器从最大值递减,计数 ...

  8. WatchDog Timer看门狗

    WDT是英语Watchdog Timer的缩写字母. Watchdog Timer 中文名 看门狗.是一个定时器电路,一般有一个输入,叫 喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一 ...

  9. watchdog(看门狗)

    Linux 在不同领域如电信.终端便携设备等得到广泛应用,不同领域的应用对 Linux系统也提出相应的需求.Carrier Grade Linux 是 OSDL(Open Source Develop ...

最新文章

  1. 阿里终面:为什么SSD不能当做内存用?
  2. 三次元风景照秒变宫崎骏动画,还能把石原里美吉卜力化,AnimeGAN已开源
  3. 开发者必备的12个JavaScript库
  4. boost::geometry::split_rings用法的测试程序
  5. 《微服务架构设计模式》总结,文末送书
  6. 2022年中国大学生学习与发展白皮书
  7. mac地址规范及算法
  8. 非洲做生意进货渠道_WikiFundi如何帮助非洲人民为维基百科做贡献
  9. 云上可靠性测试:让我们一起给开发找点事儿
  10. OpenCV kmeans代码
  11. 用html代码实现做题记分,html解析cricinfo记分卡
  12. 复合列NULL问题研究(转)
  13. ts540服务器安装系统,ThinkServer TS540 OS安装手册 V1.3.pdf
  14. STM32CubeProgrammer STM32CubeIDE下载算法 外部存储QSPI Flash
  15. 静止、极轨卫星遥感图像太阳及卫星天顶、方位角的计算
  16. 高防虚拟主机怎么选?
  17. ClickHouse 之 FORMAT 应用
  18. 关于MSP430f149Ti官方例子-UART01
  19. win7 wi-fi热点_如何将Windows PC变成Wi-Fi热点
  20. 大数据之Hadoop3.x 运行环境搭建(手把手搭建集群)

热门文章

  1. NB-IOT技术(一) - 低功耗广域网络(LPWA)
  2. 【数字IC前端】UVM常见问题系列
  3. 在excel中怎么快速定位到想要的行?
  4. 计算机安全事件现象级解决方案,长篇干货:5类10款现象级产品,带你了解产品生命周期那些事...
  5. Excel 分割汉字和数字
  6. pc端好用的txt阅读器推荐及下载地址
  7. MLFviewer2.0阅读器|MLF文件打开软件【完整版】
  8. VC++使用事务来写SQLite3数据库
  9. 使用Intel x86加速器
  10. 项目实施进度的挣值分析