主页 > IT业界  > 

µC/OS-III-事件标志

µ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/OS-III-事件标志由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“µC/OS-III-事件标志