CPU_DATA
OSPrioTbl[OS_PRIO_TBL_SIZE]; //bitmap定义 保存
要运行和正在运行任务的优先级
void OS_PrioInit (void) :
清空bitmap(OSPrioTbl)
OS_PRIO OS_PrioGetHighest (void) :
确定最高优先级的任务的优先级
从OSPrioTbl[0]开始遍历,如果为0优先级增加32,直到遇到不为0计算出前面的0的个数相加,得到最高优先级。
void OS_PrioInsert (OS_PRIO prio) :
将prio对应的bitmap中的位置1
void OS_PrioRemove (OS_PRIO prio):
将prio对应的bitmap中的位置0
取模运算:如果(基数-1)的二进制全部为1,可以使用& 代替。(如32-1=0b11111)