标签:排列 否则 个数 含义 def 需要 end typedef lse
1. 确定
如果优先级个数小于64,定义 OS_PRIO INT8U,否则默认为256个优先级 定义为INT16U。
#if OS_LOWEST_PRIO <= 63u
typedef INT8U OS_PRIO;
#else
typedef INT16U OS_PRIO;
#endif
uCOS-II中设计了一个优先级表OSxxxTbl表中的每个bit定义对应一个优先级,该优先级就绪则该bit置1,否则置0,有多少个位就有多少个优先级,优先级按照位的顺序排列。
OS_PRIO OSxxxGrp和OS_PRIO OSxxxTbl[OS_xxx_TBL_SIZE]配合起来使用;系统有(OS_xxx_TBL_SIZE x (SizeofBits(OS_PRIO)))个优先级,也就是 SizeofBits(OSxxxTbl[OS_xxx_TBL_SIZE])。
设Grpx 为就绪组中优先级最高的那个组,MaxPrio为就绪组中最高优先级
Grpx = OSUnMapTbl [OSxxxGrp]
MaxPrio = OSUnMapTbl[OSxxxTbl[Grpx]]
OSUnMapTbl的含义是,在8个位(8个优先级任意状态),即 28 =256种情况中,确定优先级最高的就绪位。所以64个优先级,需要先确定8个组中优先级最高的那个组,再确定组中优先级最高的那个位。
标签:排列 否则 个数 含义 def 需要 end typedef lse
原文地址:https://www.cnblogs.com/mapleay/p/9304248.html