rtems事件操作函数
%A
%A
%A 事件操作函数
%A
%A 作者 Ray
%A
%A RTEMS版权所有,转载请注明来源www.rtems.net,作者ray@rtems
%A
%A
%A 15.4: 函数
%A 15.4.1 : EVENT_SEND-向任务发送事件集
%A
%A 函数原型:
%A
%A rtems_status_code rtems_event_send(
%A
%A rtems_id id,
%A
%A rtems_event_set event_in
%A
%A );
%A
%A
%A
%A 返回值代表的状态:
%A
%A RTEMS_SUCCESSFUL- 成功发送事件集
%A
%A RTEMS_INVALID_ID- 无效的任务ID标识
%A
%A
%A
%A 描述:
%A
%A 该函数发送事件集event_in给ID标识指定的任务。如果发送的事件集满足阻塞任务的要求,那么阻塞任务就绪。如果不能满足,那么集合中满足条件的任务将会对阻塞任务等待事件集更新。如果发送对象现在没有等待,那么事件集会被挂起。
%A
%A 注意:
%A
%A 将id设置为RTEMS_SELF,那么事件集发送的对象是调用者本省。
%A
%A 事件集不会被排队。如果同时发送多个,接受不过来的话,后续的事件集将会被丢弃。
%A
%A 该函数调用后可能发生抢占调度
%A
%A 向远端的任务发送事件集,将会产生一个对远端节点的发送请求。
%A 15.4.2 : EVENT_RECEIVE- 接受事件
%A
%A 函数原型 :
%A
%A rtems_status_code rtems_event_receive(
%A
%A rtems_event_set event_in,
%A
%A rtems_option option_set,
%A
%A rtems_interval ticks,
%A
%A rtems_event_set*event_out
%A
%A );
%A
%A
%A
%A 返回值代表的状态:
%A
%A RTEMS_SUCCESSFUL- 成功地接受事件
%A
%A RTEMS_UNSATISFIED- 输入事件不满足条件 (RTEMS_NO_WAIT)
%A
%A RTEMS_INVALID_ADDRESS- event_out 是空值
%A
%A RTEMS_TIMEOUT- 等候事件集的时间限制倒了
%A
%A
%A
%A 描述 :
%A
%A 该函数尝试接受 event_in 指定的事件集。 如果 event_in 被设定成 RTEMS_PENDING_EVENTS, 那么将会把所有的挂起事件传递给 event_out 。option_set 参数的 RTEMS_WAIT 和 RTEMS_NO_WAIT 选件是用来叙述任务愿意等候。RTEMS_EVENT_ANY 和 RTEMS_EVENT_ALL option_set参数是用来叙述是否要求所有事件都满足。
%A
%A 如果事件集满足任务要求,那么将满足条件的事件集放入event_out,事件集的挂起态被取消。如果事件集不满足条件,而且 设置了RTEMS_NO_WAIT,那么目前满足条件的事件集子集被放入event_out中。如果召集任务选择等候, 然后它将会对于事件是候补阻塞以为条件。
%A
%A 如果任务需要为指定事件等待一段时间,那么就指定ticks变量。如果该变量设置为RTEMS_NO_TIMEOUT,则表明任务将继续等待。
%A
%A
%A
%A 注意:
%A
%A 该函数只影响在 event_in 中指定的事件。 不符合任何任何一个条件的事件集子集将会被挂起。
%A
%A 如果需要等待一定时间,就需要时钟支持。
%A
%A
%A%A
%A
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。