主页 文档 下载 莱特 沙龙 English

RTESM文档
RTEMS精彩应用
RTEMS版权说明
其他RTOS
ARM/DSP专区
AVR/FPGA/PCB
嵌入式文件系统
ARM AVR仿真器DIY
莱特电子工作室
联系我们
 


事件操作函数

作者 Ray

RTEMS版权所有,转载请注明来源www.rtems.net,作者Ray

 

15.4: 函数

15.4.1 : EVENT_SEND-向任务发送事件集

函数原型:

rtems_status_code rtems_event_send(

rtems_id id,

rtems_event_set event_in

);

 

返回值代表的状态:

RTEMS_SUCCESSFUL- 成功发送事件集

RTEMS_INVALID_ID- 无效的任务ID标识

 

描述:

该函数发送事件集event_in给ID标识指定的任务。如果发送的事件集满足阻塞任务的要求,那么阻塞任务就绪。如果不能满足,那么集合中满足条件的任务将会对阻塞任务等待事件集更新。如果发送对象现在没有等待,那么事件集会被挂起。

注意:

将id设置为RTEMS_SELF,那么事件集发送的对象是调用者本省。

事件集不会被排队。如果同时发送多个,接受不过来的话,后续的事件集将会被丢弃。

该函数调用后可能发生抢占调度

向远端的任务发送事件集,将会产生一个对远端节点的发送请求。

15.4.2 : EVENT_RECEIVE- 接受事件

函数原型 :

rtems_status_code rtems_event_receive(

rtems_event_set event_in,

rtems_option option_set,

rtems_interval ticks,

rtems_event_set*event_out

);

 

返回值代表的状态:

RTEMS_SUCCESSFUL- 成功地接受事件

RTEMS_UNSATISFIED- 输入事件不满足条件 (RTEMS_NO_WAIT)

RTEMS_INVALID_ADDRESS- event_out 是空值

RTEMS_TIMEOUT- 等候事件集的时间限制倒了

 

描述 :

该函数尝试接受 event_in 指定的事件集。 如果 event_in 被设定成 RTEMS_PENDING_EVENTS, 那么将会把所有的挂起事件传递给 event_out 。option_set 参数的 RTEMS_WAIT 和 RTEMS_NO_WAIT 选件是用来叙述任务愿意等候。RTEMS_EVENT_ANY 和 RTEMS_EVENT_ALL option_set参数是用来叙述是否要求所有事件都满足。

如果事件集满足任务要求,那么将满足条件的事件集放入event_out,事件集的挂起态被取消。如果事件集不满足条件,而且 设置了RTEMS_NO_WAIT,那么目前满足条件的事件集子集被放入event_out中。如果召集任务选择等候, 然后它将会对于事件是候补阻塞以为条件。

如果任务需要为指定事件等待一段时间,那么就指定ticks变量。如果该变量设置为RTEMS_NO_TIMEOUT,则表明任务将继续等待。

 

注意:

该函数只影响在 event_in 中指定的事件。 不符合任何任何一个条件的事件集子集将会被挂起。

如果需要等待一定时间,就需要时钟支持。

 

 
嵌入式软硬件设计咨询 • 8位 16位 32位 64位 RISC DSP
主页文章 方案 产品 下载反馈
 
2004 RTEMS.NET 版权所有