摇摆游戏攻略网

关闭导航
首页 > 策略经营 > 游戏攻略3

谁能解释一下什么叫看门狗

整理:yaobaiwang.com 时间:07月01日

[看门狗2扳手长什么样]看门狗2扳手长什么样?下面小编就为大家带来一篇看门狗2扳手外观图片预览。玩家们,还等什么?一起跟随小编过来看看吧,祝大家游戏愉快哦...+阅读

谁能解释一下什么叫看门狗

看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。 看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。加入看门狗目的是对一些程序潜在错误和恶劣环境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间内怠工。同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。 图1:(a) 多任务系统看门狗示意图;(b) 相应的看门狗复位逻辑图。 在单任务系统中看门狗工作原理如上所述,容易实现。在多任务系统中情况稍为复杂。假如每个任务都像单任务系统那么做,如图1(a)所示,只要有一个任务正常工作并定期“喂狗”,看门狗定时器就不会溢出。除非所有的任务都故障,才能使得看门狗定时器溢出而复位,如图1(b)。 而往往我们需要的是只要有一个任务故障,系统就要复位。或者选择几个关键的任务接受监视,只要一个任务出问题系统就要复位,如图2(a)所示,相应的看门狗复位逻辑如图2(b)所示。 在多任务系统中通过创建一个监视任务TaskMonitor,它的优先级高于被监视的任务群Task1、Task2...Taskn。TaskMonitor在Task1~Taskn正常工作情况下,一定时间内对硬件看门狗定时器清零。如果被监视任务群有一个Task_x出现故障,TaskMonitor就不对看门狗定时器清零,也就达到被监视任务出现故障时系统自动重启的目的。另外任务TaskMonitor自身出故障时,也不能及时对看门狗定时器清零,看门狗也能自动复位重启。接下来需要解决一个问题是:监视任务如何有效监视被监视的任务群。 图2:(a) 多任务系统看门狗示意图;(b) 正确的看门狗复位逻辑图。 在TaskMonitor中定义一组结构体来模拟看门狗定时器组, typedef struct { UINT32 CurCnt, LastCnt; BOOL RunState; int taskID; } STRUCT_WATCH_DOG; 该结构体包括被监视的任务号taskID,用来模拟“喂狗”的变量CurCnt、LastCnt(具体含义见下文),看门狗状态标志RunState用来控制当前任务是否接受监视。 被监视的任务Task1~Taskn调用自定义函数CreateWatchDog(int taskid)来创建看门狗,被监视任务一段时间内要“喂狗”,调用ResetWatchDog(int taskid),这个“喂狗”动作实质就是对看门狗定时器结构体中的变量CurCnt加1操作。TaskMonitor大部分时间处于延时状态,假设硬件看门狗定时是2秒,监视任务可以延时1.5秒,接着对创建的看门狗定时器组一一检验,延时前保存CurCnt的当前值到LastCnt,延时后比较CurCnt与LastCnt是否相等,都不相等系统才是正常的。需要注意的是CurCnt和LastCnt数据字节数太小,而“喂狗”过于频繁,可能出现CurCnt加1操作达到一个循环而与LastCnt相等。 如果有任意一组的CurCnt等于LastCnt,认为对应接受监视的任务没有“喂狗”动作,也就检测到该任务出现故障需要重启,这时候TaskMonitor不对硬件看门狗定时器清零,或者延时很长的时间,比如10秒,足以使得系统重启。反之,系统正常,Task1~Taskn定期对TaskMonitor“喂狗”,TaskMonitor又定期对硬件看门狗“喂狗”,系统就得不到复位。还有一点,被监视任务可以通过调用PauseWatchDog(int taskid)来取消对应的看门狗,实际上就是对STRUCT_WATCH_DOG结构体中的RunState操作,该标志体现看门狗有效与否。 这种方式可监视的最大任务数由STRUCT_WATCH_DOG结构数据的个数决定。程序中应该有一个变量记录当前已创建的看门狗数,判断被监视任务Task1~Taskn是否“喂狗”只需比较CurCnt与LastCnt的值n次。 图3:系统复位逻辑图。 硬件看门狗监视TaskMonitor任务,TaskMonitor任务又监视其他的被监视任务Task1~Taskn,形成这样一种链条。这种方式系统的故障图表示如图3所示。被监视任务Task1~Taskn及TaskMonitor都是或的关系,因此被监视的任一任务发生故障,硬件电路看门狗就能复位。 为实现多任务系统的看门狗监视功能额外增加了TaskMonitor任务,这个任务占用执行时间多少也是一个重要问题。假设TaskMonitor任务一个监视周期延时1.5秒,此外需要执行保存当前计数值,判断是否“喂狗”等语句,它的CPU占用时间是很小的。用一个具体的试验证实,使用50M工作频率的CPU(S3C4510),移植vxWorks操作系统,cache不使能条件下监视10个任务,每个监视周期占用...

什么是看门狗它有那些用途

看门狗又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。

以下为关联内容:

看门狗2预购有什么奖励看门狗2预购有什么奖励?下面小编就为大家带来一篇看门狗2预购奖励全部一览。希望对大家有所帮助。一起跟随小编过来看看吧,祝大家游戏愉快哦...

看门狗2好玩吗看门狗2全面试玩心得分享《看门狗2》好玩吗?新游上线,大家难免要将其与前作相比较,而本作有哪些变化,上手体验如何,也是大家所关注的...

问一下看门狗2背景音乐问一下看门狗2背景音乐,有人知道看门狗2这时候的背景音乐是什么:背景音乐是So Very Hard To Go,e69da5e6ba90e79fa5e9819331333363373136歌手是Tower of Power游戏片段歌词:(淡...

看门狗艾登皮尔斯的师傅叫什么看门狗艾登皮尔斯的师傅叫什么,看门狗2支线任务亚历克斯怎么救:看门狗艾登皮尔斯的师傅是戴米安·布伦克斯(Damien Brenks),教会了艾登皮尔斯黑客技术和制造。独立e69da5e6ba9062...

看门狗2什么武器好用看门狗2什么武器好用:大剑攻击力高且不说,攻击范围y轴好像是最高的,侧一个身位安全砍杀,攻击硬直刀刀都粘人(对比单手,1,2hit打第二关大蜘蛛小怪竟然没有硬直)。大剑缺点就是特殊攻...

为什么看门狗win10为什么看门狗win10,看门狗2显卡驱动未响应经常闪退怎么解决:1、首先,各位先确定是不是A卡,A卡的话要关闭双显卡集火,然后就是最低配置6G内存有木有,没有请右转。 2、 如果机器确实...

看门狗的dlc内容是什么看门狗的dlc内容是什么:[4] Exclusive Missions: White Hat Pack (豪华版独占任务:白帽包) [11] Season Pass (季票) { [1] The Palace Pack (骇客天堂包) [2] Signature Shot Pack...

看门狗是什么东西啊看门狗是什么东西啊,看门狗2怎么激活呢:你们知道什么是硬件看门狗吗?跟着我一起学习什么是硬件看门狗吧。 硬件看门狗说明 看门狗,又叫watchdog timer,主要用来监控、管理CPU的运...

地磅看门狗是什么地磅看门狗顾名思义,是用于地磅,电子称,汽车磅秤等衡器安全称重产品, 首先,说说它的外形,它是长宽高为174x78x31mm的家伙,说数字可能您还不是特别有概念,这么说吧,其实它就和家用电话...

推荐文章