一. 适用于不同优先级的调度
二. Priority=0-63 ,映射到8*8矩阵中。
![23c7fe71c20451a9a394e3c6e2fcd682.png](https://i-blog.csdnimg.cn/blog_migrate/e44f7ef328067c0212a557f669d08124.png)
设计思想:每一个Priority都能在8*8的格子找到对用的位置
每一个置1的数,都能代表某个优先级置位
行数越小,列数越小的位置,就是最小优先级的位置。
具体操作步骤如下:
1. 把优先级num 计算出行数row 和 列数col
2. 查小表,将row、col找到对用数 ROW、COL
3. 查大表,将ROW、COL,找到最小Little_ROW,Little_COL
4. MAX_Prio=Little_ROW*8+Little_COL;
四. 报警优先级序号是如何填写8*8矩阵的?
优先级位填充数组 PriorityBitTbl[] ={ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, };
例如:Priority=11 ; 11/8 =1 余3 因此在1行3列,
Grp |= PriorityBitTBL[Row]; // 填写完行数
Tbl[Row] |= PriorityBitTBL[Col]; // 填写完列数
经过变量操作,填充完成如下图所示:
![566ef966d0433132612ce4a68eea674b.png](https://i-blog.csdnimg.cn/blog_migrate/5f3fbe32469eb4ecef3fad049a72f52b.jpeg)
如何知道,有报警来了呢?
被填好的行表,会被实时监测,发现又状态,那么就去计算优先级
�#� #