硬件看门狗的工作原理( 看门狗的作用解析秒懂)

来源:  星创易联 发布时间: 2023-11-22 10:54:06
导读:所谓的看门狗,当然就是我们所想的那样了,就是看大门的,但今天说的此门非彼门,而是电子产品上常用到的防止程序跑飞不能运行,卡死等等,对系统的稳定运行起着很重要的作用。那么看门狗长什么样呢?其实它就是一个定时器罢了。分为独立看门狗和窗口看门狗。

一、认识看门狗


独立看门狗定时器(FWDGT)有独立时钟源(IRC32K)。因此就算是主时钟失效了,它仍然能保持工作状态,这非常适合于需要独立环境且对计时精度要求不高的场合。

窗口看门狗定时器(WWDGT)用来监测由软件故障导致的系统故障。窗口看门狗定时器开启后,7位向下递减计数器值逐渐减小。计数值达到0x3F时会产生复位(CNT[6]位被清0)。在计数器计数值达到窗口寄存器值之前,计数器的更新也会产生复位。因此软件需要在给定的区间内更新计数器。窗口看门狗定时器在计数器计数值达到0x40或者在计数值达到窗寄存器之前更新计数器,都会产生一个提前唤醒标志,如果使能中断也将会产生中断。窗口看门狗定时器时钟是由APB1时钟预分频而来。窗口看门狗定时器适用于需要精确计时的场合。

二、看门狗的使用

一般的看门狗都会有这几点,使能时钟、设置重装载值、使能看门狗。以下是单片机的看门狗初始化。

image.png

再来看看linux的看门狗初始化:

image.png


具体的细节就不一一道明,不管是哪一种,基本上就大同小异,只要掌握了原理,使用是没有什么问题的,只要及时喂狗就行了。

三、看门狗的应用

前面提到看门狗能够为系统的稳定长期运行保驾护航,但是我这里重点讲的不是程序运行过程中的看门狗使用,因为最近在使用的过程中发现一个好玩又实用的用法。

主要是用在远程升级当中,程序设计的逻辑是这样的。flash大体分为了四个区,一个是用于存放bootloader,其余三个存放app代码区,两个运行代码区,一个是升级代码下载区,当接收完代码并写进flash之后就重启进入bootloader,在这里把下载的代码更新到运行区域。如果代码合法,则从新的代码启动,万一代码不合法或者启动失败,则会面临电子产品变成砖头的可能。

为了解决这个问题,想到了有看门狗,于是在更新完代码之后,先启用看门狗,再跳转,如果失败的话看门狗就会重启程序,重新进入bootloader中选择默认的代码启动。

image.png


看到这里明白了吗,更多详细的操作可以在公众号内回复bootloader,可以获取相应的源代码,已经调试通过无任何问题。


文章对应产品

SG500能耗专用网关
SG600智慧灯杆网关
SG610多功能灯杆网关
SG800边缘网关(4G)

产品对应解决方案

在线咨询
产品PK
样机申请
选购攻略

微信扫一扫

微信联系
返回顶部