多任务系统看门狗的实现 多任务系统看门狗的实现是指在多任务系统中,使用看门狗机制来监视和恢复系统的运行状态。看门狗机制可以分为硬件看门狗和软件看门狗两种类型。硬件看门狗是使用一个定时器电路,程序在一定时间范围内对定时器清零(“喂狗”),防止系统出现故障。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。 软件看门狗原理上与硬件看门狗相同,但使用处理器的内部定时器代替硬件电路。软件看门狗可以简化硬件电路设计,但在可靠性方面不如硬件定时器。 在多任务系统中,使用看门狗机制来监视和恢复系统的运行状态。可以创建一个监视任务TaskMonitor,它的优先级高于被监视的任务群Task1、Task2...Taskn。TaskMonitor在Task1~Taskn正常工作情况下,一定时间内对硬件看门狗定时器清零。如果被监视任务群有一个Task_x出现故障,TaskMonitor就不对看门狗定时器清零,也就达到被监视任务出现故障时系统自动重启的目的。 在TaskMonitor中定义一组结构体来模拟看门狗定时器组,每个结构体包括被监视的任务号taskID,用来模拟“喂狗”的变量CurCnt、LastCnt,看门狗状态标志RunState用来控制当前任务是否接受监视。被监视的任务Task1~Taskn调用自定义函数CreateWatchDog(int taskid)来创建看门狗,被监视任务一段时间内要求“喂狗”,调用ResetWatchDog(int taskid),这个“喂狗”动作实质就是对看门狗定时器结构体中的变量CurCnt加1操作。 TaskMonitor大部分时间处于延时状态,假设硬件看门狗定时是2秒,监视任务可以延时1.5秒,接着对创建的看门狗定时器组一一检验,延时前保存CurCnt的当前值到LastCnt,延时后比较CurCnt与LastCnt是否相等,都不相等系统才是正常的。如果有任意一组的CurCnt等于LastCnt,认为对应接受监视的任务没有“喂狗”动作,也就检测到该任务出现故障需要重启。 被监视任务可以通过调用PauseWatchDog(int taskid)来取消对应的看门狗,实际上就是对STRUCT_WATCH_DOG结构体中的RunState操作,该标志体现看门狗有效与否。这种方式可监视的最大任务数由STRUCT_WATCH_DOG结构数据的个数决定。程序中应该有一个变量记录当前已创建的看门狗数,判断被监视任务Task1~Taskn是否“喂狗”只需比较CurCnt与LastCnt的值n次。 硬件看门狗监视TaskMonitor任务,TaskMonitor任务又监视其他的被监视任务Task1~Taskn,形成这样一种链条。这种方式系统的故障图表示如图3所示。被监视任务Task1~Taskn及TaskMonitor都是可以被监视和恢复的。




















- 甜甜不加糖2023-07-28作者以简明的语言解释了多任务系统中看门狗的概念和功能,易于理解。
- 吉利吉利2023-07-28这份文件内容充实,详细介绍了多任务系统中看门狗的实现步骤和注意事项,为读者提供了宝贵的参考资料。
- 月小烟2023-07-28文件中提供了实际案例和代码示例,帮助读者更好地理解和应用这一技术。
- 精准小天使2023-07-28作者对多任务系统的相关原理进行了简要介绍,使读者能够对整个系统有一个全面的了解。
- 啊看看2023-07-28这份文件详细介绍了多任务系统中看门狗的实现,对初学者非常友好。

- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- CADCAM软件在机械制造业中的作用及发展方向.doc
- 世界上主要发达国家或地区电子商务发展情况.doc
- XX供电公司工程项目管理行为规范考评表.doc
- plc在电梯系统中的应用的大学本科方案设计书.doc
- 互联网+的变电检修人数据解决对策.docx
- 全国大学生电子商务竞赛团体赛全流程.doc
- 基于大数据技术的情感分析系统的设计和实现.docx
- 单片机和超声波模式测距系统设计.doc
- 如何在Excel单元格中调整行距.docx
- 新媒体时代高校网络文化建设品牌培育路径研究.docx
- 网络安全期末复习题.doc
- 图形与界面设计illustrator课程教案.doc
- 民用机场建设招投标信息化管理.doc
- 安卓软件工程师IT必须掌握BF-TECH-3.0-C模块.doc
- 装饰工程项目管理的难点与对策15800.doc
- 计算机辅助设计在机械领域的应用分析.docx


