微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > μC/OS-III的内核对象解析

μC/OS-III的内核对象解析

时间:08-09 来源:互联网 点击:

e.JPG


1.3 事件标志组
事件标志组创建函数为:
f1.jpg
其参数分别为:事件标志组的地址、事件标志组的名字、初始化事件标志组、错误代号。
事件标志组挂起函数为:
f.JPG
其参数分别为:事件标志组的地址、任务所等待的标志位、任务等待期满时间、事件标志组的方式、时间戳、错误代号。
事件标志组的方式选择需分为两部分:一部分为事件标志组失效时的处理方式,可选择OS_OPT_PENDBLOCKING和OS_OPT_PEND_NON_BLOCKI NG;另一部分是任务等待事件标志位的方式。
所等待的标志位全部被清零:OS_OPT_PEND_FLAG_CLR_AND
所等待的标志位或操作为0:OS_OPT_PEND_FLAG_CLR_OR
所等待的标志位全部被置位:OS_OPT_PEND_FLAG_SET_AND
所等待的标志位或操作为1:OS_OPT_PEND FLAG_SET_OR
事件标志提交函数为:
h.jpg
其参数分别为:事件标志组的地址、此函数中被操作的位、置位或清零、错误代号。
事件标志组的其他API:
删除事件标志组 OSFlagDel()
取消任务等待事件标志组 OSFlagPendAbort()
获取事件标志组中任务所关心的位 OSFlagPendGetFlagsRdy()
事件标志组实现任务间的通信如图3所示。

g.JPG



2 小结
μC/OS-III任务间的通信常通过信号量、消息队列、事件标志组实现。信号量的通信类似于任务间打招呼,如判断某条件是否成立。消息队列可分为任务内建消息队列和外部消息队列,任务内建消息队列一般用于接收少量消息(如中断程序发送过来的消息),外部消息队列主要面向于多个任务共同等待的消息。事件标志组则用于多个任务间的同步。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top