当前位置: 首页 > news >正文

µC/OS-III-事件标志

事件标志与信号量都是属于任务间同步的一种机制,信号量一般用于任务间的单事件同步,对于任务间的多事件同步,使用信号量来实现比较复杂,µC/OS-III提供了事件标志,事件标志就能够很好地处理任务间的多任务同步。
事件标志是一个事件是否发生用一个比特位表示,一个事件是否发生只有两种情况,分别为事件发生和事件未发生,因此只需一个比特位就能够表示事件是否发生,µC/OS-III 用1表示事件发生,用0表示事件未发生。

一、µC/OS-III事件标志相关 API 函数
1)函数 OSFlagCreate()
创建一个事件标志组。
void OSFlagCreate(
OS_FLAG_GRP* p_grp, //指向事件标志组结构体的指针
CPU_CHAR* p_name, //指向作为事件标志组名的 ASCII 字符串的指针
OS_FLAGS flags, //事件标志组的初始值
OS_ERR* p_err) //指向接收错误代码变量的指针
2) 函数 OSFlagDel()
删除一个事件标志组。
OS_OBJ_QTY OSFlagDel(
OS_FLAG_GRP* p_grp, //指向事件标志组结构体的指针
OS_OPT opt, //函数操作选项
OS_ERR* p_err); //指向接收错误代码变量的指针
返回值:OS_OBJ_QTY类型,被终止挂起等待事件标志任务的数量。
3)函数OSFlagPend()
用于等待事件标志组中的事件。
OS_FLAGS OSFlagPend(
OS_FLAG_GRP* p_grp, //指向事件标志组结构体的指针
OS_FLAGS flags, //等待的事件标志
OS_TICK timeout, //任务挂起等待事件标志的最大允许时间
OS_OPT opt, //函数操作选项
CPU_TS* p_ts, //指向接收等待到事件时的时间戳的变量的指针
OS_ERR* p_err) //指向接收错误代码变量的指针
返回值:OS_FLAGS类型,任务实际等待到的事件标志。
4)OSFlagPendAbort()
终止任务挂起等待事件标志组。
OS_OBJ_QTY OSFlagPendAbort(
OS_FLAG_GRP* p_grp, //指向事件标志组结构体的指针
OS_OPT opt, //函数操作选项
OS_ERR* p_err) //指向接收错误代码变量的指针
返回值:OS_OBJ_QTY类型,被终止挂起任务的数量。
5)函数 OSFlagPendGetFlagsRdy()
用于获取任务等待到的事件。
OS_FLAGS OSFlagPendGetFlagsRdy(
OS_ERR p_err) //指向接收错误代码变量的指针
返回值:OS_FLAGS类型,任务获取到的事件标志。
6)函数 OSFlagPost()
用于设置事件标志组中的事件。
OS_FLAGS OSFlagPost(
OS_FLAG_GRP
p_grp, //指向事件标志组结构体的指针
OS_FLAGS flags, //等待的事件标志
OS_OPT opt, //函数操作选项
OS_ERR* p_err) //指向接收错误代码变量的指针
返回值:OS_FLAGS类型,事件标志组更新后的事件标志值。

相关文章:

  • 探索 C 语言:编程世界的基石
  • 在kali linux中kafka的配置和使用
  • mysql深度分页优化方案
  • Redis 同步机制详解
  • 写Oracle表耗时25分钟缩短到23秒——SeaTunnel性能优化
  • 发布策略:蓝绿部署、金丝雀发布(灰度发布)、AB测试、滚动发布、红黑部署的概念与区别
  • CPaintDC的简单介绍
  • 大语言模型学习--本地部署DeepSeek
  • 利用机器学习进行信用风险评估
  • C语言总结目录
  • Moticon智能鞋垫传感器OpenGo:经济实用的运动科学研究与临床评估工具
  • Java 补充 - System.out.println 方法打印彩色文本(通过 ANSI 转义序列方式)
  • LLM大型语言模型(一)
  • 【期末考试应急处理】Linux 历年考试-试题及答案汇总
  • IDEA Tab 页设置多行显示
  • PXE批量网络装机与Kickstart自动化安装工具
  • RabbitMq高级
  • 如何在Node.js中处理文件上传?
  • 拼电商客户管理系统
  • VsCode + EIDE + OpenOCD + STM32(野火DAP) 开发环境配置
  • 河北省建设工程安全生产监督管理网站/百度一下你就知道百度一下
  • 做58网站怎么赚钱吗/seo好学吗入门怎么学
  • 青岛济南网站建设优化/赣州seo外包怎么收费
  • 门户网站做等级保护测评/什么是网络营销公司
  • flash网站项目背景/十大互联网平台
  • 网上做网站怎么赚钱吗/数据分析软件