[发明专利]多任务看门狗的实现装置和方法无效
申请号: | 201210518407.4 | 申请日: | 2012-12-06 |
公开(公告)号: | CN103853625A | 公开(公告)日: | 2014-06-11 |
发明(设计)人: | 邓洪波 | 申请(专利权)人: | 苏州工业园区新宏博通讯科技有限公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 苏州威世朋知识产权代理事务所(普通合伙) 32235 | 代理人: | 杨林洁 |
地址: | 215126 江苏省苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 看门狗 实现 装置 方法 | ||
技术领域
本发明涉及单片机的复位控制领域,尤其是涉及一种如何实现多任务看门狗的技术领域。
背景技术
随着在32位微处理器在嵌入式产品中的广泛应用,嵌入式操作系统也逐渐被大量应用。由于嵌入式操作系统的使用, 大大降低了复杂应用系统中软件开发的工作量, 使得嵌入式软件能够采用现代的软件开发技术进行代码编写和调试, 从而也提高了软件的质量。但在嵌入式应用中, CPU 必须可靠工作, 即使因为某种原因进入一个错误状态, 系统也应该可自动恢复。为解决“程序跑飞”的问题,常用“看门狗”来提高微型机系统的可靠性和安全性。
所谓 “看门狗”是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。一般有一个输入,叫喂狗(kicking the dog or service the dog);一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时溢出归零,使处理器重新启动。
单任务程序采用顺序机制,看门狗的实现是非常简单的,只需要在合适的位置定时的去“喂狗”就可以了。而在多任务系统中,多个任务进程分享CPU资源,为了保证每个任务的正常运行,需要在每个任务中执行“喂狗”动作。但是如果仅仅是简单直接进行喂狗的动作,如果一个任务出现异常不能正常运行,其它任务还是会可以继续地喂狗。单个任务出现故障,系统还是能够正常运行,此时看门狗并没有起到应有的作用。所以,在嵌入式操作系统中如何使用看门狗是一个比较复杂的流程。
发明内容
为了解决上述技术问题,本发明公开了一种实现多任务看门狗的装置和方法。所述实现多任务的看门狗装置,包括一个硬件定时器,连接一单片机,用于监控主程序的运行;一个软件看门狗计数器数组,所述软件看门狗计数器数组包括若干个软件看门狗计数器,用于对每一个任务进行监控,所述装置还包括一个软件计数器,所述软件计数器对各个任务的软件看门狗计数器进行累加计数。
进一步的,所述的软件看门狗计数器数组根据每一个任务运行周期的不同,设定不同的动作阀值。
进一步的,所述硬件计时器包括一个输入和一个输出,所述输入用于接收清零信号,所述输出连接所述单片机,用于输出复位信号。
进一步的,所述软件计数器的优先级别高于所述若干个软件看门狗计数器。
进一步的,本发明还公开了一种实现多任务的看门狗的方法,所述方法包括下列步骤:
将一个硬件定时器连接到一单片机,对主程序的运行进行监控;
提供一个软件看门狗计数器数组,所述软件看门狗计数器数组包括若干个软件看门狗计数器,每个软件看门狗计数器监控一个任务;
提供一个软件计数器,所述软件计数器对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较;在所有任务正常运行的情况下,所述软件计数器值不断被清零;当某一任务出现故障后,所述软件计数器不能被清零,累计一段时间后,所述软件计数器值将溢出;所述软件计数器值首先通过会试图恢复出现故障的任务,当连续几次仍然不能正常运行该任务时,停止喂硬件狗,重启整个系统。
进一步的,所述软件计数器和所述硬件计时器的输入相连,当各个任务正常运行时,所述软件计数器提供清零信号,当任务出现故障时,所述软件计数器不能及时对于硬件计时器清零,硬件计时器的输出输送复位信号到单片机,复位系统。
进一步的,所述软件计数器的优先级别高于所述若干个软件看门狗计数器。
进一步的,所述的软件看门狗计数器数组根据每一个任务运行周期的不同,设定不同的动作阀值,所述软件计数器对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较。
进一步的,所述软件计数器利用嵌入式系统的任务切换心跳中断,定时实现对硬件计数器的清零动作。
进一步的,所述嵌入式系统的切换心跳中断累计硬件计时器,并判断硬件计时器是否溢出,如果硬件计时器溢出,系统复位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州工业园区新宏博通讯科技有限公司,未经苏州工业园区新宏博通讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210518407.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:充气装置及控制充气时间的控制方法
- 下一篇:一种太阳能组件焊接专用助焊剂