开启辅助访问
 找回密码
 立即注册

ucos2中OSEventTbl[]数组,里面到底是放的是指什么值。

chwbn765 回答数1 浏览数1473
ucos2中OSEventTbl[]数组 在OS_EVENT结构体中为整形的数组: typedef struct { INT8U OSEventType; INT8U OSEventGrp; INT16U OSEventCnt; void *OSEventPtr; INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; } OS_EVENT; 但是又会出现 0S_EVENT *pevent1; pevent1 = &OSEventTbl[0];这种赋值,其用法和任务里面的&OSTCBTbl[0]相似,里面存放的到底是指什么东西?
白龙江左岸 | 来自北京
因为uCos中采用的是静态链表,所以才有各种数组的存在,在OS_CFG.h 中可以配置最大的OS_MAX_EVENTS数目。在编译的时候,就建立了 OS_EVENT OSEventTbl[OS_MAX_EVENTS];/* Table of EVENT control blocks 等到你要用的时候就从已经建立的事件数组中取出一台,这个是事件控制块,包含了很多的参数,至于OS_EVENT结构体中的 OSEventTbl[]是存储了等待这个事件的任务的标志位,是以位图的形式保存,每个优先级在这个数组中占有1为,是等待则为1 没否则为0,这2个数组是名字一样,但是表示的意义是不一样的,OSTCB[]也是因为采用了静态链表,就像你到银行去办卡,银行的工作人员会给你一张表格,事先他们已经印好了很多表格(就像编译的时候建立了数组,里面有很多OSTCB结构体),你要用的时候就取一台,但是不能超过最大限度。祝你进步!
用Deepseek满血版问问看
回复
使用道具 举报
快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影