事件标志组

相当于用户平时定义的Flag,事件标志,不过freertos支持将该标志组作为启动task的条件

概述

  • 分为8位和24位的模式(通过设置宏来配置)
  • 每一位有0和1两个状态

用法

  1. 用于平常程序的标记位
  2. 用于task之间的同步
    • 任务a先到达同步点,进入阻塞态

      • 设置任务a的事件标记位
      • 检查其他任务的事件标记位(发现任务b没标记)
      • 等待其他任务的事件标记位(进入阻塞状态)
    • 任务b判断事件标志,判断通过后,释放该标志,进入同步
      • 设置任务b的事件标记位(任务a被同步)
      • 检查其他任务的事件标记位(发现任务a已标记)
      • 与任务a同步运行

事件标志判断方法

  1. 多个标志位同时满足(多个task同时到达同步点)
  2. 多个标志位有一个满足(其中一个task到达同步点)

two Challenges

  1. 每一个标志位分工明确。避免出现两个任务同时等待一个标志位的情况,出现标志位争抢(race conditions)
  2. 避免不确定行为(大概意思和1一样)[详见]

不确定性行为: 程序的执行路径或时间不是固定的,它可能依赖于多种不可预知的因素,如任务调度顺序、中断到达时间等。在实时系统中,非确定性行为是不被接受的,因为它可能导致系统无法满足其时间约束。

freertos学习笔记(十)事件标志组的更多相关文章

  1. FreeRTOS 任务通知模拟事件标志组

    实验 //设置事件位的任务 void eventsetbit_task(void *pvParameters) { u8 key; while(1) { if(EventGroupTask_Handl ...

  2. bootstrap学习笔记<十>(按钮组,导航)

    1)按钮组.样式:class="btn-group" <div class="btn-group"> <button class=" ...

  3. FreeRTOS 事件标志组 ——提高篇

    假设你已经看过FreeRTOS 事件标志组这篇随笔了. 之前的基础篇,真的就只是简单了解一下,相当于大学实验室的实验,但是,我们实际公司项目中,需要更多地思考,就算我们之前只是学习了基础概念以及基础语 ...

  4. FreeRTOS 事件标志组

    以下转载自安富莱电子: http://forum.armfly.com/forum.php 为什么要使用事件标志事件标志组是实现多任务同步的有效机制之一.也许有不理解的初学者会问采用事件标志组多麻烦, ...

  5. FreeRTOS 任务计数信号量,任务二值信号量,任务事件标志组,任务消息邮箱

    以下基础内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 计数信号量的另一种实现方式----基于任务通知(Task Not ...

  6. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  7. go微服务框架kratos学习笔记十(熔断器)

    目录 go微服务框架kratos学习笔记十(熔断器) 什么是熔断 熔断器逻辑 kratos Breaker kratos 熔断逻辑 kratos熔断器使用说明 bladmaster client br ...

  8. FreeRTOS_事件标志组

    FreeRTOS事件标志组 事件标志组简介 1. 事件位(事件标志) 事件位用于表明某个事件是否发生,事件位通常用作事件标志,比如下面的几个例子: 当收到一条消息并且把这条消息处理掉以后就可以将某个位 ...

  9. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  10. Learning ROS for Robotics Programming Second Edition学习笔记(十) indigo Gazebo rviz slam navigation

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 moveit是书的最后一章,由于对机械臂完全不知,看不懂 ...

随机推荐

  1. manim边学边做--MathTex

    上一篇介绍的SingleStringMathTex主要用来显示只有一行的数学公式,对于复杂的数学公式,可以使用MathTex类. MathTex类继承自SingleStringMathTex,在其基础 ...

  2. RD/RT格式

    一.RD RD长度是8字节,包括Type和Value字段. Type字段:2字节 Value字段:6字节 Type字段的取值决定了Value字段的结构.每种类型的Value字段都由两个部分组成,分别是 ...

  3. InfluxDB 常用基本配置,启用账号密码登录,配置指定端口登录

    打开安装目录下的 influxdb.conf 找到 http 节点 配置完成后再安装目录下使用命令启动 influxdb influxd --config influxdb.conf 启动完成后,基本 ...

  4. Excel好用的技巧

    http://www.360doc.com/content/18/0603/07/39124342_759238510.shtml

  5. SpringBoot的知识点总结和常用注解

    SpringBoot 知识点总结 基础入门 基本介绍.基本特性.核心模块.版本选择.环境要求.安装集成.技快速开发接口.Maven Wrapper.Spring Boot CLl 配置管理 配置类.配 ...

  6. Linux 更新网络时间

    下载包 yum install -y ntpdate 同步网络时间 ntpdate 0.asia.pool.ntp.org 若上面的时间服务器不可用,也可以改用如下服务器进行同步: time.nist ...

  7. 洛谷P1020

    又是一道做的很麻的题,准确来说感觉这不是一道很好的dfs题,没有体现dfs的一些特点 反而感觉是在考察dp,刚开始也是按照我的思路交了3次都没过 原本以为所选的数应该都是由上一次的最大值推出来的,后面 ...

  8. 【RocketMQ 系列】 RocketMQ 双主双从(同步双写) 集群搭建

    1. 各角色介绍 Producer:消息的发送者:举例:发信者 Consumer:消息接收者:举例:收信者 Broker:暂存和传输信息:举例:邮局 NameServer:管理Broker:举例:各个 ...

  9. 27 首页banner文库失效

    安卓app 首页banner文库没有连接功能

  10. 【C++】使用ort推理yolov10

    [C++]使用ort推理yolov10 前言:由于笔者是编导专业,想玩玩yolo模型,搜来搜去全是python,所以在学会之后写一篇文章帮助和笔者同样情况的人 环境 Windows 10 C++17 ...