FreeRTOS实验_独立看门狗监视多线程
来源:互联网 发布:jdbc数据库配置 编辑:程序博客网 时间:2024/06/06 20:06
1.首先随意创建几个线程,如下图:
2.然后就要思考了,怎么样实现如果其中一个线程死掉了,就不喂狗得以让系统重启?
其实,我们可以反过来想一下,什么情况下才喂狗得以让系统正常运行?答案是,所有线程都活着的时候。
那么我们就让所有线程每隔一段时间上报一次“我还活着”事件给监视程序,当监视程序发现其中一个线程在这段时间内没有上报“我还活着”事件时就停止喂狗。
我们用事件组来达到,这一目的,如下图:
3.接下来,我们为每个线程都可以定义一个事件标志,如下图:
4.我们现在可以封装一个函数,当某个线程调用这个函数的时候,该线程就上报“我还活着”事件给监视程序,如下图:
5.万事俱备,我们现在只欠有一个监视程序了,如果收到所有线程上报“我还活着”事件,就喂狗。
我们此时思考一下,这个监视程序肯定不能使独立的线程,因为这涉及到该线程也可能死掉的情况。
思前想后,得到有种方案,定时器或者软件定时器。
我个人比较偏向于使用软件定时器。因为使用软件定时器可以不占用硬件资源;况且也不是要时间很精确地喂狗,只要在复位之前能喂一下狗就够了。
创建软件定时器,如下图:
6.监视的主体有了,接下来我们可以写一下监视过程了,一旦所有线程都发送“我还活着”事件,就立即喂狗,如下图:
7.好了,可以开启,定时器和独立看门狗了,如下图:
8.嗯,既然每秒监视一次线程嘛,那么当然所有线程都要保证在一秒之内上报自己还活着啦!如下图:
总是,不要让线程轮转一次超过看门狗复位时间。。。当然你也可以到处去调用thread_iwdg_refresh()去喂狗,我是不喜欢这么做的。
OK,这样多线程独立看门狗的运用方法就写完了。
2.然后就要思考了,怎么样实现如果其中一个线程死掉了,就不喂狗得以让系统重启?
其实,我们可以反过来想一下,什么情况下才喂狗得以让系统正常运行?答案是,所有线程都活着的时候。
那么我们就让所有线程每隔一段时间上报一次“我还活着”事件给监视程序,当监视程序发现其中一个线程在这段时间内没有上报“我还活着”事件时就停止喂狗。
我们用事件组来达到,这一目的,如下图:
3.接下来,我们为每个线程都可以定义一个事件标志,如下图:
4.我们现在可以封装一个函数,当某个线程调用这个函数的时候,该线程就上报“我还活着”事件给监视程序,如下图:
5.万事俱备,我们现在只欠有一个监视程序了,如果收到所有线程上报“我还活着”事件,就喂狗。
我们此时思考一下,这个监视程序肯定不能使独立的线程,因为这涉及到该线程也可能死掉的情况。
思前想后,得到有种方案,定时器或者软件定时器。
我个人比较偏向于使用软件定时器。因为使用软件定时器可以不占用硬件资源;况且也不是要时间很精确地喂狗,只要在复位之前能喂一下狗就够了。
创建软件定时器,如下图:
6.监视的主体有了,接下来我们可以写一下监视过程了,一旦所有线程都发送“我还活着”事件,就立即喂狗,如下图:
7.好了,可以开启,定时器和独立看门狗了,如下图:
8.嗯,既然每秒监视一次线程嘛,那么当然所有线程都要保证在一秒之内上报自己还活着啦!如下图:
总是,不要让线程轮转一次超过看门狗复位时间。。。当然你也可以到处去调用thread_iwdg_refresh()去喂狗,我是不喜欢这么做的。
OK,这样多线程独立看门狗的运用方法就写完了。
阅读全文
0 0
- FreeRTOS实验_独立看门狗监视多线程
- FreeRTOS实验_独立看门狗监视多线程
- FreeRTOS实验_独立看门狗监视多线程
- 独立看门狗实验
- 独立看门狗实验
- 【实验四】独立看门狗实验
- STM32单片机学习(4) 独立看门狗实验
- 独立看门狗
- 独立看门狗
- 独立看门狗
- 独立看门狗
- 独立看门狗
- 独立看门狗
- cortex_m3_stm32嵌入式学习笔记(五):独立看门狗实验(IWDG)
- FreeRTOS实验_线程安全和中断安全printf方式
- STM32的独立看门狗
- stm32 独立看门狗学习
- STM32独立看门狗
- java获取工程目录下面或者引用jar包中的配置文件方式:
- 创建React Component的几种方式
- OPenGl编程宝典在vs2010中配置
- BZOJ 3994 [SDOI2015]约数个数和
- 给定一个字符串,你需要颠倒一个句子中每个单词中的字符顺序,同时保留空格和初始单词顺序。
- FreeRTOS实验_独立看门狗监视多线程
- Gang Black and Gang White (二分图染色法)
- 小米系列手机调试Installation failed with message Failed to establish session
- logback的使用和logback.xml详解
- 负载均衡-Session处理策略
- TIPTOP ERP 之 MRP物料需求计划
- 在服务器上安装redhat系统
- 【算法题】生日礼物
- win7,win10系统安装时硬盘格式转换(MBR,GPT)