1. 程式人生 > >uCOS-II

uCOS-II

默認 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