码迷,mamicode.com
首页 > 其他好文 > 详细

uCOS-II

时间:2018-07-13 13:22:57      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:排列   否则   个数   含义   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个组中优先级最高的那个组,再确定组中优先级最高的那个位。

 

uCOS-II

标签:排列   否则   个数   含义   def   需要   end   typedef   lse   

原文地址:https://www.cnblogs.com/mapleay/p/9304248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!