一,事件和相关的结构体总结
1、 在ucosii中事件主要有五种
A、信号量 OS_EVENT_TYPE_SEM
B、互斥信号量 OS_EVENT_TYPE_MUTEX
C、消息邮箱 OS_EVENT_TYPE_MBOX
D、消息队列 OS_EVENT_TYPE_Q
E、信号量集 OS_EVNET_TYPE_FLAG
2、事件的结构体。
OS_EVENT_TYPE_SEM OS_EVENT_TYPE_MUTEX OS_EVENT_TYPE_MBOX OS_EVENT_TYPE_Q |
OS_EVNET_TYPE_FLAG | |
OS_FLAG_GRP 信号量级的标志组 | OS_FLAG_NODE 信号量节点 | |
Typedef struct { INT8U OSEventType INT16U OSEventCnt Void *OSEventPtr INT8U OSEventGrp INT16U OSEventTbl[OS_EVENT_TBL_SIZE]; }OS_EVNET | typedef struct os_flag_grp { INT8U OSFlagType; void *OSFlagWaitList; OS_FLAGS OSFlagFlags; #if OS_FLAG_NAME_SIZE > 1 INT8U OSFlagName[OS_FLAG_NAME_SIZE]; #endif } OS_FLAG_GRP; | typedef struct os_flag_node { void *OSFlagNodeNext; void *OSFlagNodePrev; void *OSFlagNodeTCB; void *OSFlagNodeFlagGrp; OS_FLAGS OSFlagNodeFlags; INT8U OSFlagNodeWaitType; } OS_FLAG_NODE; |
注意在消息队列的结构体中还有一个结构体消息队列:
Typedef struct OS_q
{
Struct OS_q *OSQPtr;
Void * * OSQStart;
Void * *OSQEnd;
Void * *OSQIn
Void * * OSQOut;
Int16u OSQSize;
Int16u OSQEnteries;
}
1,补充的是内存控制块的结构体数组:OS_MEM
Typedef struct{
Void *OSMemAddrl
Void *OSMemFreeeList;
INT32U OSMemBlkSize;
INT31U OSMemNBlks
INT32U OSMemNFree;
}OS_MEM;