watchdog之喂狗分析
当时遇到的一个问题是,某次修改代码后编译烧写时,出现了一个逐项选择的菜单,就随便选了下,结果后续运行程序时,每过一段时间就会自动重启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之喂狗分析相关推荐
- Android system server之WatchDog看门狗分析
android -- WatchDog看门狗分析 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系 ...
- 应用与系统稳定性第五篇---Watchdog原理和问题分析
前面已经这个系列已经更新了4篇,死机重启问题分析中,Watchdog问题最为常见,今天接着写一写Watchdog问题的分析套路以及工作原理. 应用与系统稳定性第一篇---ANR问题分析的一般套路 应用 ...
- RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你]
RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 概述 程序设计完成后,要开始考虑系统整体的稳定性了. 在设备上线后,可能因为程序设计不合理.硬件设计有 bug,电气干扰.静电噪声.电源故障 ...
- linux的watchdog代码分析,Watchdog机制以及问题分析
目录 1. 概览 Watchdog的中文的"看门狗",有保护的意思.最早引入Watchdog是在单片机系统中,由于单片机的工作环境容易受到外界磁场的干扰,导致程序"跑飞& ...
- sparc架构代码分析-NMI看门狗分析
性能监测功能能够统计软件运行过程中发生的各种事件,比如执行分支指令的次数,发生tlb miss的次数等,从而给软件的性能给出评判,它通常是被perf,oprofile等性能诊断工具所使用. ...
- java实现看门狗_Watchdog看门狗分析
看门狗最初的意义是因为早期嵌入式设备上的程序经常跑飞(比如说电磁干扰等),所以专门设置了一个硬件看门狗,每隔一段时间,看门狗就去检查某个参数是不是被设置了,如果发现该参数被设置了,则判断为系统出错,然 ...
- independent watchdog 独立看门狗 window watchdog 窗口看门狗
看门狗(watchdog) 防止硬件因外界电磁场干扰或其他导致不能正常工作的,导致不可预料后果,对芯片进行实时检测的模块或芯片称为看门狗. 看门狗工作过程 启动看门狗后,有一个计数器从最大值递减,计数 ...
- WatchDog Timer看门狗
WDT是英语Watchdog Timer的缩写字母. Watchdog Timer 中文名 看门狗.是一个定时器电路,一般有一个输入,叫 喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一 ...
- watchdog(看门狗)
Linux 在不同领域如电信.终端便携设备等得到广泛应用,不同领域的应用对 Linux系统也提出相应的需求.Carrier Grade Linux 是 OSDL(Open Source Develop ...
最新文章
- 阿里终面:为什么SSD不能当做内存用?
- 三次元风景照秒变宫崎骏动画,还能把石原里美吉卜力化,AnimeGAN已开源
- 开发者必备的12个JavaScript库
- boost::geometry::split_rings用法的测试程序
- 《微服务架构设计模式》总结,文末送书
- 2022年中国大学生学习与发展白皮书
- mac地址规范及算法
- 非洲做生意进货渠道_WikiFundi如何帮助非洲人民为维基百科做贡献
- 云上可靠性测试:让我们一起给开发找点事儿
- OpenCV kmeans代码
- 用html代码实现做题记分,html解析cricinfo记分卡
- 复合列NULL问题研究(转)
- ts540服务器安装系统,ThinkServer TS540 OS安装手册 V1.3.pdf
- STM32CubeProgrammer STM32CubeIDE下载算法 外部存储QSPI Flash
- 静止、极轨卫星遥感图像太阳及卫星天顶、方位角的计算
- 高防虚拟主机怎么选?
- ClickHouse 之 FORMAT 应用
- 关于MSP430f149Ti官方例子-UART01
- win7 wi-fi热点_如何将Windows PC变成Wi-Fi热点
- 大数据之Hadoop3.x 运行环境搭建(手把手搭建集群)