uc/os-ii信号量集

μC/OS-II中的信号量集用于管理多个二值信号量,实现任务与多个事件同步。它包含标志组和等待任务链表,其中标志组进行逻辑运算,等待任务链表记录等待信号量集的任务。信号量集操作类似其他事件控制,是系统中实现多事件同步的重要机制。
摘要由CSDN通过智能技术生成

在实际应用中,任务常常需要与多个事件同步,即要根据多个信号量组合作用的结果来决定任务的运行方式。μC/OS-II为了实现多个信号量组合的功能定义了一种特殊的数据结构——信号量集。
信号量集所能管理的信号量都是一些二值信号,所有信号量集实质上是一种可以对多个输入的逻辑信号进行基本逻辑运算的组合逻辑,其输入为其他任务发出的多个信号,而输出为多个输入逻辑运算的结果。
uC/OS-II把信号量集的功能分成两部分:标志组和等待任务链表。这里的标志组+等待任务链表可以理解为之前讲的事件控制块。事件待列表中用全0表示没有等待事件的任务,标志组中的OSFlagWaitList = (void *)0;表示没有等待信号量集的任务。

  • 标志组。
typedef struct os_flag_grp {                /* Event Flag Group                                        */
    INT8U         OSFlagType;               /* Should be set to OS_EVENT_TYPE_FLAG                     */
    void         *OSFlagWaitList;           /* Pointer to first NODE of task waiting on event flag     */
    <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值