news 2026/8/16 14:53:57

喂狗在操作系统(rtos)上面的正确用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
喂狗在操作系统(rtos)上面的正确用法

喂狗在操作系统(rtos)上面的正确用法。

不能在定时器喂狗,也不能在idle任务喂狗,也不能用定时任务去喂狗。因为,会出现,其他任务都卡死了,但喂狗还在执行。

应该检查所有任务,都没有卡死,才能喂狗。

示例程序,如下。

//不能在定时器喂狗,也不能在idle任务喂狗,也不能用定时任务去喂狗。因为,会出现,其他任务都卡死了,但喂狗还在执行。//默认1s,1000 tick hz。如果要,用ms延时,请加上对应的宏。//假设,tick类型为32位。//如果某个任务,卡死。那么,会出现,不喂狗。长时间,不喂狗,会硬件重启。//如果某些出现,死锁现象。也就是,执行不到最后,心跳停止。那么,也会检测到心跳异常,出现不喂狗。长时间不喂狗,会硬件重启。//演示值,实际值为除喂狗任务外,所有任务的数量值。#defineN8//心跳数组。除喂狗任务外,所有任务。volatileuint32_ttaskHeartBeat[N]={0};//具体任务1,任务优先级>1。voidtaskXXX(void*pv){while(1){//判断是否需要执行功能。if(flag){//执行完所需的操作,就设置心跳。//由于是示例程序,只有一个任务,所以,下标是0。每一个任务,都有一个对应的下标。taskHeartBeat[0]=xTaskGetTickCount();xTaskDelay(10);}else{//只设置心跳taskHeartBeat[0]=xTaskGetTickCount();//由于是示例程序,只有一个任务,所以,下标是0。每一个任务,都有一个对应的下标。xTaskDelay(10);}}}//喂狗任务,任务优先级=1。voidtaskWatchDog(void*pv){//这个只是示例,具体请参考看门狗超时时间的设置和手册。constuint32_ttimeOut=1000;//uint32_ti=0;while(1){//uint32_ttick=xTaskGetTickCount();//loop全部任务,除喂狗任务外。// 用临界区防止检查过程中被高优先级任务抢占更新心跳taskENTER_CRITICAL();// 或 vTaskSuspendAll() / xTaskResumeAll()for(i=0;i<N;i++){if(tick-taskHeartBeat[i]>=timeOut)break;}taskEXIT_CRITICAL();//全部检查完,没有一个任务出现超时或卡死。if(i==N){//喂狗freeDog();}//如果i!=N,不喂狗。多次后,自动触发硬件复位。//这个时间,要比超时时间要小,一般是超时时间的/2或/3。xTaskDelay(300);}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 14:43:52

VTube Studio:30分钟让虚拟主播在镜头前活起来

VTube Studio&#xff1a;30分钟让虚拟主播在镜头前活起来 【免费下载链接】VTubeStudio VTube Studio API Development Page 项目地址: https://gitcode.com/gh_mirrors/vt/VTubeStudio 你有没有过这样的瞬间&#xff1a;对着镜头摆个笑脸&#xff0c;屏幕里的二次元形…

作者头像 李华
网站建设 2026/8/16 14:41:16

碾压普通AI❗OKBIYE七大顶配功能解锁[特殊字符]毕业写论文全程开挂

绝大多数毕业生都低估了OKBIYE的实力&#xff01;很多人只拿它简单写初稿、基础降重&#xff0c;白白浪费了它吊打全网普通AI的顶配高阶功能。市面上泛滥的免费AI论文工具&#xff0c;本质只能做浅层文字拼接、简单改词降重&#xff0c;功能单一、漏洞百出、高危频发&#xff0…

作者头像 李华
网站建设 2026/8/16 14:35:45

告别内卷内耗!2026巴厘岛小众解压攻略,程序员专属治愈之旅

敲代码的日子里&#xff0c;我们常年与 Bug、需求迭代、熬夜加班为伴&#xff0c;眼睛盯着冰冷的屏幕&#xff0c;大脑塞满逻辑代码和项目进度&#xff0c;紧绷的神经几乎从未放松。很多时候&#xff0c;我们需要的不是走马观花的旅游&#xff0c;而是一场清空缓存、重启状态的…

作者头像 李华