Ucos-ii中获取最高优先级的原理(任务和事件)
2011-08-04 17:46
357 查看
Ucos-ii中获取最高优先级的原理(任务和事件)
2009-08-02 19:12
1. 任务优先级表是按照由左至右,由上至下的顺序增长的,且优先级号越小优先级越高。
2. 任务优先级存储在一个字节型数组里,数组大小为8,其还有一个行表,即一个字节单元,用于确定在数组的哪行有任务。
3. 任务优先级由一个字节的低6个bit组成,其最低优先级为2^6-1 = 63(优先级范围为0~63),其中高3bit对应行表,低3bit对应数组中某字节单元。
4. 位掩码OSMapTbl[8],下标0~7对应值00000001、00000010、00000100、00001000、00010000、00100000、01000000、10000000,其作用是屏蔽其他bit值,下标0~7对应行表(高3位)和优先级表(低3位)。
5. OSUnMapTbl[]数组用于查找最高优先级,其经过精心设计。
首先,找行表值在OSUnMapTbl[]中的对应位置的值x
然后,找优先级表第x行值在OSUnMapTbl[]中对应位置的值y
—查找方法:由于行表值为8bit,则高4bit对应OSUnMapTbl[]中行值,低4bit对应OSUnMapTbl[]中列值;对应优先级表查找方法同行表查找方法。
最后,prio = x<<3 + y。
注:OSUnMapTbl[]数组构造方法:
--由优先级表的构造,即越靠左越靠上的优先级越高可知:
1.低4bit无值,那么就高4bit的最低为1值的位确定-例:0000-0, 0001-4, 0010-5,0011-4……
2.低4bit有值,那么就低4bit的最低为1值的位确定-例:00000000-0,10010001-0,00111010-1,00001011-0……
3.由1和2有第1列值为0,4,5,4,6,4,5,4,7,4,5,4,6,4,5,4;第2列全为0,第3列全为1,第4列全为0,第5列全为2,第6列全为0,第7列全为1,第8列全为0,第9列全为3,第10列全为0,第11列全为1,第12列全为0,第13列全为2,第14列全为0,第15列全为1,第16列全为0。
2009-08-02 19:12
1. 任务优先级表是按照由左至右,由上至下的顺序增长的,且优先级号越小优先级越高。
2. 任务优先级存储在一个字节型数组里,数组大小为8,其还有一个行表,即一个字节单元,用于确定在数组的哪行有任务。
3. 任务优先级由一个字节的低6个bit组成,其最低优先级为2^6-1 = 63(优先级范围为0~63),其中高3bit对应行表,低3bit对应数组中某字节单元。
4. 位掩码OSMapTbl[8],下标0~7对应值00000001、00000010、00000100、00001000、00010000、00100000、01000000、10000000,其作用是屏蔽其他bit值,下标0~7对应行表(高3位)和优先级表(低3位)。
5. OSUnMapTbl[]数组用于查找最高优先级,其经过精心设计。
首先,找行表值在OSUnMapTbl[]中的对应位置的值x
然后,找优先级表第x行值在OSUnMapTbl[]中对应位置的值y
—查找方法:由于行表值为8bit,则高4bit对应OSUnMapTbl[]中行值,低4bit对应OSUnMapTbl[]中列值;对应优先级表查找方法同行表查找方法。
最后,prio = x<<3 + y。
注:OSUnMapTbl[]数组构造方法:
--由优先级表的构造,即越靠左越靠上的优先级越高可知:
1.低4bit无值,那么就高4bit的最低为1值的位确定-例:0000-0, 0001-4, 0010-5,0011-4……
2.低4bit有值,那么就低4bit的最低为1值的位确定-例:00000000-0,10010001-0,00111010-1,00001011-0……
3.由1和2有第1列值为0,4,5,4,6,4,5,4,7,4,5,4,6,4,5,4;第2列全为0,第3列全为1,第4列全为0,第5列全为2,第6列全为0,第7列全为1,第8列全为0,第9列全为3,第10列全为0,第11列全为1,第12列全为0,第13列全为2,第14列全为0,第15列全为1,第16列全为0。
相关文章推荐
- uCOS-ii 如何获取最高优先级的Task
- uCOS-ii 如何获取最高优先级的Task
- ucos 获取查找最高优先级任务算法
- ucos 最高任务优先级 OS_SchedNew () 最高256个优先级 源码分析
- ucos-II学习之:数据结构(任务控制块/事件控制块/内存控制块总结一)
- uCOS-II任务管理之改变任务的优先级
- us/osII 中最高优先级任务的查表法
- ucos-ii学习笔记——信号量集(事件标志组)的原理及使用
- uCOS-II任务管理之改变任务优先级 [转载]
- uCOS创建任务实例---code from《嵌入式实时操作系统uCos-II原理及应用》
- 对uC/OS-II查找最高优先级就绪任务算法的理解
- uCOS-II任务间通信之事件控制块
- ucos-II之任务优先级
- uC/OS-II任务调度之就绪表及最高优先级任务判定算法
- ucos 就绪表(Ready List):任务设置,清除和查表最高优先级任务
- uC/OS-II任务调度中判断最高优先级
- uCOS-II任务间通信之事件控制块 [转载]
- 参考任哲的《嵌入式实时操作系统μC_OS-II原理及应用》,对UCOS的任务调度做了下整理。
- 获取优先级最高的就绪任务
- uCOS-II中任务的优先级翻转现象