uCOS-II
阿新 • • 發佈:2018-07-13
默認 xxx apt its 含義 設計 eof type 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