FreeRTOS源码阅读笔记6--event_groups.c

news2024/12/22 23:41:11

通常用的事件标志组是一个32位的变量uxEventBits,可设置的位有24位,一共就是24 种事件。

事件组的结构体类型:

6.1创建事件组xEventGroupCreate()

6.1.1函数原型

  • 返回值:事件组句柄,指向事件组。
6.1.2函数框架
  • ①为事件组结构体分配空间

  • ②初始化事件组结构体的成员变量,包括等待事件列表的初始化。

6.2删除事件组vEventGroupDelete()

6.2.1函数原型

  • xEventGroup:事件组的句柄。
6.2.2函数框架

6.3置位事件组xEventGroupSetBits()

6.3.1函数原型

  • xEventGroup:事件组句柄;
  • uxBitsToSet:指定事件中的事件标志位,32位的数据。如设置为0x07,表示事件组中的位0、位1和位2都设置为1。
  • 返回值:调用 xEventGroupSetBits() 时事件组中的值。
6.3.2函数框架

6.4置位事件组xEventGroupSetBitsFromISR()

6.4.1函数原型

  • xEventGroup:事件组句柄;
  • uxBitsToSet:指定事件中要设置的事件标志位;
  • pxHigherPriorityTaskWoken:可根据*pxHigherPriorityTaskWoken判断退出中断后,是否要进行任务切换。
  • 返回值:消息成功发送给守护任务之后则返回 pdTRUE,否则返回 pdFAIL。如果定时器服务队列满了将返回 pdFAIL。
6.4.2函数框架

xEventGroupSetBits源码中可以看出,while循环中等待事件的任务数量是不确定的,FreeRTOS中不能在中断中执行不确定的操作。所以xEventGroupSetBitsFromISR其实是在守护任务(软件定时器服务任务,优先级比自定义的任务优先级大)通过回调函数的方式,调用xEventGroupSetBits函数来实现的,本质上xEventGroupSetBitsFromISR执行的上下文环境是任务。

6.5等待事件组xEventGroupWaitBits()

6.5.1函数原型

  • xEventGroup:事件组句柄;
  • uxBitsToWaitFor:等待事件组的哪些位;
  • xClearOnExit:函数退出时是否清除由形参 uxBitsToWaitFor 指定的事件标志位;
  • xWaitForAllBits:pdTRUE“逻辑与”,pdFALSE“逻辑或”;
  • xTicksToWait:超时时间。
  • 返回值:事件组的值。
6.5.2函数框架

6.6清除事件组标志位xEventGroupClearBits()

6.6.1函数原型

  • xEventGroup:事件组句柄;
  • uxBitsToClear:需要清零的位;
  • 返回值:清除之前的事件组的值。
6.6.2函数框架
  • ①事件组的值赋值给返回值

  • ②清零相应位

6.7清除事件组标志位xEventGroupClearBitsFromISR()

6.7.1函数原型

  • xEventGroup:事件组句柄;
  • uxBitsToClear:需要清零的位;
6.7.2函数框架

通过回调函数的方式,在守护任务中调用xEventGroupClearBits函数实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【牛客网】SQL必知必会题解

SQL 必知必会题解 地址:牛客网在线编程_SQL篇_SQL必知必会 (nowcoder.com) 检索数据 从 Customers 表中检索所有的 ID 现有表 Customers 如下: cust_idABC 【问题】编写 SQL 语句,从 Customers 表中检索所有的 cust_id 答案:…

HUAWEI WATCH 4系列腕上星球,智慧生活触手可得

腕上星球,智慧生活触手可得。HUAWEI WATCH 4系列星球表盘引领风潮,万能卡片轻松便捷开启应用,腕上微信聊天抬腕即回,更有超级快充助力畅玩。全能型智能手表,生活更出彩!

JAVA将PDF转图片

前言 当今时代,PDF 文件已经成为了常用的文档格式。然而,在某些情况下,我们可能需要将 PDF 文件转换为图片格式,以便更方便地分享和使用。这时,我们可以使用 Java 编程语言来实现这个功能。Java 提供了许多库和工具&a…

MacOS 14 系统 XCode15、 Flutter 开发 IOS

Flutter 系列文章目录 MacOS14 Sonoma 安装 Flutter 开发环境 MacOS 系统 Flutter开发Android 环境配置MacOS 系统 Flutter开发IOS 环境配置​​​​​​​ 前言 前面我们已经在MacOS14 M3芯片上安装好 Flutter环境,包括开发工具 VsCode 、Android Stuiod,那么fl…

用函数初始化数组

将数组全部初始化为相同值 对于一般情况 一般是用函数&#xff0c;传什么数就初始化为什么数 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> void init(int arr[], int len, int num) {int i;for (i 0; i < len; i){arr[i] num;} } int main() {int arr[…

数据库第十第十一章 恢复和并发简答题

数据库第一章 概论简答题 数据库第二章 关系数据库简答题 数据库第三章 SQL简答题 数据库第四第五章 安全性和完整性简答题 数据库第七章 数据库设计简答题 数据库第九章 查询处理和优化简答题 1.什么是数据库中的事务&#xff1f;它有哪些特性&#xff1f;这些特性的含义是什么…

微服务--01--简介、服务拆分原则

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 微服务微服务架构&#xff0c;是服务化思想指导下的一套最佳实践架构方案。服务化&#xff0c;就是把单体架构中的功能模块拆分为多个独立项目。 单体架构微服务架构…

vscode Markdown 预览样式美化多方案推荐

优雅的使用 vscode写 Markdown&#xff0c;预览样式美化 1 介绍 我已经习惯使用 vscode 写 markdown。不是很喜欢他的 markdown 样式&#xff0c;尤其是代码块高亮的样式。当然用 vscode 大家基本上都会选择安装一个Markdown-preview-enhanced的插件&#xff0c;这个插件的确…

数字IC芯片验证流程及验证工具推荐?收藏专用

验证其实是一个“证伪”的过程&#xff0c;从流程到工具&#xff0c;验证工程师的终极目的都只有一个&#xff1a; 发现所有BUG&#xff0c;或者证明没有BUG&#xff0c;以保证芯片功能性能的正确性和可靠性。 验证环节对于一颗芯片的重要性也是不言而喻的&#xff1a; 从项…

甘草书店记:2023年10月10日 星期二 晴 「甘草书店从何而来」

甘草书店记&#xff1a;2023年10月10日 星期二 晴 「甘草书店从何而来」 甘草书店的落地&#xff0c;差不多是“一瞬间”实现的。 麦田医学和公司新址园区沟通办公室租赁细节时&#xff0c;园区负责人谈到了一楼大厅的咖啡馆计划&#xff0c;而我适时地提出了一些建议和我对于…

JAVA 算法面试总结

1、二分查找 二分查找又叫折半查找&#xff0c;要求待查找的序列有序。每次取中间位置的值与待查关键字比较&#xff0c;如果中间位置 的值比待查关键字大&#xff0c;则在前半部分循环这个查找的过程&#xff0c;如果中间位置的值比待查关键字小&#xff0c; 则在后半部分循环…

MySQL(主从复制)

简述&#xff1a;主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff0c;主数据库一般是准实时的 业务数据库、事务处理库&#xff0c;从库做查询库。 复制过程简单的说就是 master 将数据库的改变写入二进制日志&#xff0c…

JOSEF电流继电器 DL-33 整定范围0.5-2A 柜内安装板前接线

系列型号&#xff1a; DL-31电流继电器; DL-32电流继电器; DL-33电流继电器; DL-34电流继电器; 一、用途 DL-30系列电流继电器用于电机保护、变压器保护和输电线的过负荷和短路保护线路中&#xff0c;作为起动元件。 二、结构和原理 继电器系电磁式&#xff0c;瞬时动作…

电脑缺失vcruntime140_1.dll有什么办法解决,修复vcruntime140_1.dll丢失

电脑缺失vcruntime140_1.dll有什么办法解决&#xff0c;vcruntime140_1.dll文件的作用又是什么&#xff0c;这个文件有什么作用&#xff1f;是一个什么样的文件&#xff1f;如果要修复vcruntime140_1.dll文件都有什么办法能够解决呢&#xff1f;今天这篇文章就和大家聊一聊关于…

ProFTPD-1.3.3c Backdoor Command Execution漏洞复现+poc

https://www.whereisk0shl.top/post/proftpd-1.3.3chou-men-fen-xi https://github.com/proftpd/proftpd 在官网和官方github上找了一圈1.3.3c版本的proftpd&#xff0c;应该是漏洞太多&#xff0c;官方把下了 https://blog.csdn.net/morrino/article/details/115836400 这个文…

MySQL--InnoDB引擎

InnoDB引擎 逻辑存储引擎 表空间→段→区→页→行 Tablespace 表空间&#xff08;ibd文件&#xff09;&#xff1a;一个mysql实例可以对应多个表空间&#xff0c;用于存储记录、索引等数据Segment 段&#xff1a;段分为数据段、索引段、回滚段&#xff0c;InnoDB是索引组织表…

山西电力市场日前价格预测【2023-11-28】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-11-28&#xff09;山西电力市场全天平均日前电价为283.92元/MWh。其中&#xff0c;最高日前电价为437.70元/MWh&#xff0c;预计出现在17:45。最低日前电价为0.00元/MWh&#xff0c;预计出…

2023年最新Dev-C++下载安装以及C语言环境搭建教程(C语言入门)

文章目录 写在前面C语言简介Dev-C简介Dev-C下载安装Dev-C使用教程 写在后面 写在前面 2023年最新Dev-C下载安装以及C语言环境搭建教程&#xff0c;快来看看吧&#xff01; C语言简介 C语言是一种通用的高级程序设计语言&#xff0c;由美国计算机科学家Dennis Ritchie于20世纪…

Java抽象类和接口(2)

&#x1f435;本篇文章继续对接口相关知识进行讲解 一、排序 1.1 给一个对象数组排序&#xff1a; class Student {public String name;public int age;public Student(String name, int age) {this.name name;this.age age;}public String toString() {return "name:…

【Axure高保真原型】3D金字塔图_移入显示数据标签

今天和大家分享3D金字塔图_移入显示数据标签的原型模板&#xff0c;鼠标金字塔区域时&#xff0c;对应区域会变绿&#xff0c;可以查看该区域对应的项目和数据&#xff0c;这个原型模板是用Axure原生元件制作的&#xff0c;所以无需联网&#xff0c;而且可以自由修改样式、交互…