RTOS 与看门狗的亲密合作

    长久以来, 看门狗技术已经越来越多地进入单片机系统.至今基本上已经成为嵌入式系统中的一个标准部件.
    同时,对看门狗应用技术的研究,也得到了很长足的发展. 当然在最常见的前后台系统中,通常放在前台的主循环中喂狗,来实现监控所有其它各个部分的死循环的发生. 当然也有做成中断喂狗来监控的. 对于这个系统, 不在此赘述.
    另外,在嵌入式系统领域, 近年来, RTOS 也在稍微复杂些的系统中得到越来越广泛的应用. 本人最近自己打磨了个 os 做试验, 偶然的故障引发了对RTOS与看门狗如何亲密合作的思考.
    事实上, 传统的建立在前后台系统中看门狗应用技术, 进入 OS 后, 发现了比较严重的不足.
    诚然, 使用看门狗技术的目的就是用来监控系统中不应该有的超长时间的循环. 看门狗技术使用要点:就是能够尽可能把所有超长时间的循环都能发现, 当然还有就是没有超长时间的循环不应该误动作. 而这些要求, 在前后台系统中, 采用主循环和少数可知的大时间循环 (通过运行时间评估来判断) 中喂狗这样简单的处理一般是能够达到要求的.
    但是, 在进入 OS 后, 特别是抢先式的 OS 后, 情况就变得复杂起来.
    当然, 使用看门狗的目的仍然是尽可能把所有超长时间的循环都发现, 而没有超长时间的循环不应该误动作.
    但是, 在包含 OS 的系统中, 所有的工作都交给了若干个任务来完成了. 这样就要求看门狗对每个任务的过长时间的循环都要有监控能力, 于是, 我们往往就给每个任务的循环中都加入喂狗指令. 但是这样的结果是, 频繁的高优先级任务的喂狗指令可以让看门狗根本就无法监控到低优先级任务的超时长循环! 反过来, 如果只是把喂狗指令放在最低优先级的任务中, 由于频繁的高优先级的任务争夺了 CPU 的控制权, 致使并非需要长时间运行低优先级任务却可能让看门狗误动作了!
    请各位谈谈各自的解决办法!谢谢

 
2楼: >>参与讨论
作者: zhuph 于 2006-1-9 18:34:00 发布:
--------------------------------------------------------------------------------
rtos使用后,是否需要改换思路?
像楼上如此的考虑,永远也没有个头,并且系统会越变越复杂。有种感觉,是不是可以从体系结构的角度考虑这个问题,而不单单是从编程本身。

 
3楼: >>参与讨论
作者: avr1008 于 2006-1-10 10:18:00 发布:
--------------------------------------------------------------------------------
每个任务定时向看门狗任务法消息
每个任务定时向看门狗任务法消息,如果看门狗任务在一定时间内收全其他任务发来的消息才喂狗

 
4楼: >>参与讨论
作者: 艾森豪威尔 于 2006-1-10 10:38:00 发布:
--------------------------------------------------------------------------------
长见识了
 
5楼: >>参与讨论
作者: 12864 于 2006-1-10 11:50:00 发布:
--------------------------------------------------------------------------------
系统任务安排的这么满吗?
 
6楼: >>参与讨论
作者: AIRWILL 于 2006-1-10 22:22:00 发布:
--------------------------------------------------------------------------------
感想楼上几位的关注
  to zhuph: 可以从体系结构的角度考虑这个问题,我想也是吧。不过请您可否详细说说,如何考虑呢?

  to avr1008: 您的方法不失是非解决办法,只是并不全面,因为正象上面的讨论, 由于频繁的高优先级的任务争夺了 CPU 的控制权, 致使并非需要长时间运行低优先级任务却因此而来不及向看门狗任务发消息,而导致看门狗误动作了!
所以感觉也并非完全解决的办法.

to 12864: 事实上,并非系统总会安排的这么满, 然而我们却不能保证系统不会在某段时间会出现这么满的情况, 要不,对系统软件设计又提高要求了,对不?

考虑了好久了, 还是一头雾水哪.还请各位共同讨论.在此感谢了!


 
7楼: >>参与讨论
作者: 艾森豪威尔 于 2006-1-11 15:35:00 发布:
--------------------------------------------------------------------------------
也不一定什么场合都用狗的
看来你那是一定要用了。工业控制上吗?

 
8楼: >>参与讨论
作者: AIRWILL 于 2006-1-13 17:54:00 发布:
--------------------------------------------------------------------------------
是的,工业控制
其实倒不是有关什么应用的问题, 我只是象做个公共的程序接口,或者通用的解决方案

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值