搜索
bottom↓
回复: 8

请教:RT-Thread系统里一般怎么喂狗呢

[复制链接]

出0入0汤圆

发表于 2014-11-25 13:01:17 | 显示全部楼层 |阅读模式
看门狗用的是外部看门狗芯片,在RT-Thread系统里怎么喂狗比较好呢?避免出现某些任务死掉了,但系统没有重启的情况

出0入0汤圆

发表于 2014-11-25 13:24:01 | 显示全部楼层
管理系统各任务的状态,不必跟看门狗建立直接关系

出0入0汤圆

 楼主| 发表于 2014-11-26 19:16:09 | 显示全部楼层
cjwdyzdd 发表于 2014-11-25 13:24
管理系统各任务的状态,不必跟看门狗建立直接关系

楼上能不能说详细点呢,才开始学习RTT,不是很明白

出0入0汤圆

发表于 2014-11-29 10:26:49 | 显示全部楼层
bigwolf-mcu 发表于 2014-11-26 19:16
楼上能不能说详细点呢,才开始学习RTT,不是很明白

看门狗放在一个低优先级的任务就可以,目的是防止程序跑飞;
某个任务自己退出,要用代码来检测,不是看门狗要解决的问题

出0入8汤圆

发表于 2014-11-29 11:46:00 | 显示全部楼层
cjwdyzdd 发表于 2014-11-29 10:26
看门狗放在一个低优先级的任务就可以,目的是防止程序跑飞;
某个任务自己退出,要用代码来检测,不是看 ...

还是木有明白,LZ你明白了没?

出0入0汤圆

发表于 2014-11-29 12:03:08 | 显示全部楼层
cjwdyzdd 发表于 2014-11-29 10:26
看门狗放在一个低优先级的任务就可以,目的是防止程序跑飞;
某个任务自己退出,要用代码来检测,不是看 ...

放在低优先级任务里会不会有可能得不到运行机会?

我的设想是放在一个最高优先级的任务里面。
这个任务监控每个用户进程的运行状况,如果发生不想要的异常,则终止喂狗,这样系统就自动重启了。
如果所有任务都正常,那么喂一下狗就休眠了,也不占用太多的MCU资源

出0入0汤圆

 楼主| 发表于 2014-11-29 23:05:16 | 显示全部楼层
li.wen 发表于 2014-11-29 12:03
放在低优先级任务里会不会有可能得不到运行机会?

我的设想是放在一个最高优先级的任务里面。

这个方法应该靠谱。但是这里的运行状况指的是什么呢,任务状态? 按楼上这个方式,可以在每个线程里发一个信号量给喂狗线程,喂狗线程收到所有信号量后才喂狗一次,然后清空所有信号量。这样就监视到每个任务是否正常运行了。

出0入0汤圆

发表于 2014-11-30 15:56:41 | 显示全部楼层
"避免出现某些任务死掉了"
这个要求建立一个管理任务状态的任务/机制,当检测到异常,所做的处理是由楼主决定的,如果要复位系统,也可以直接复位,不一定采取关闭看门狗的间接办法。
这部分管理任务的代码应单独设计,跟喂狗是2个独立的问题

出0入0汤圆

发表于 2015-1-4 11:15:31 | 显示全部楼层
我一般是在最低优先级任务喂狗,可以放在系统空闲任务里喂,确保在正常运行时用户的所以任务都有让出系统时间的可能,这样低优先级任务才可以运行,进行喂狗,当用户任务有一个出问题,比如死循环或者死锁了,那低任务优先级就无法运行无法喂狗,导致超时而重启,让系统重新运行。另外看门狗的时间设置也是个值得注意的事情,必须要设置成以所有任务中占用系统时间的最长的设置,对于一些很耗时但又是正常的操作,可以在该任务中主动喂一下狗,这样看门狗就不会误重启了,保证系统正常运行。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 05:05

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表