ucos之事件控制块ECB

         一个任务或者中断服务子程序可以通过事件控制块 ECB(Event Control Blocks)来向另外的任务发信号。这里,所有的信号都被看成是事件(Event)。把用于通讯的数据结构叫做事件控制块。

         µC/OS-II通过uCOS_II.H 中定义的 OS_EVENT数据结构来维护一个事件控制块的所有信息,也就是这里讲到的事件控制块 ECB。该结构中除了包含了事件本身的定义,如用于信号量的计数器,用于指向邮箱的指针,以及指向消息队列的指针数组等,还定义了等待该事件的所有任务的列表。

      typedef struct

      { 
               void   *OSEventPtr;                                                                      /* 指向消息或者消息队列的指针 */
               INT8U   OSEventTbl[OS_EVENT_TBL_SIZE];                      /* 等待任务列表      */
               INT16U  OSEventCnt;                                                                /* 计数器(当事件是信号量时) */
               INT8U   OSEventType;                                                               /* 时间类型  */
               INT8U   OSEventGrp;                                                                /* 等待任务所在的组  */
       } OS_EVENT;


版权声明:本文为zhangfei714原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。