有关ucosii中OSTCBY、OSTCBBitY、OSTCBX、OSTCBBitX的意义(我是菜鸟)

来源:互联网 发布:网络升级改造方案 编辑:程序博客网 时间:2024/05/29 06:58
 在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表示的就是这里的低三位

原创粉丝点击