在ucosii中,它们是这样解释的:
INT8U OSTCBX; /* Bit position in group corresponding to task priority (0..7) */
INT8U OSTCBY; /* Index into ready table corresponding to task priority */
INT8U OSTCBBitX; /* Bit mask to access bit position in ready table */
INT8U OSTCBBitY; /* Bit mask to access bit position in ready group */
最初是感觉很不理解,后来看了源码后才知晓一点。
假设我们要创建一个优先级别为prio的任务,注意prio要在有效范围内。
OSTCBY = prio>>3;
OSTCBBitY = OSMapTbl[OSTCBY];
OSTCBX = prio & 0x07;
OSTCBBitX = OSMapTbl[OSTCBX];
在ucosii中,prio只用低六位来表示,在这低六位中,高三位用来设置OSRdyGrp,低三位用来设置OSRdyTbl[],
OSTCBY 表示的就是这里的高三位,OSTCBX表示的就是这里的低三位