嵌入式操作糸统一UC/OS 就绪状态标志 Bit o in OSRdyGrp is 1 when any bit in OSRdy Tbl [o] is 1 Bit l in OSRdyGrp is I when any bit in OSRdyTbl [1] is 1 Bit 2 in OSRdyGrp is I when any bit in OSRdy Tbl [2] is 1 Bit 3 in OsRdyGrp is I when any bit in OSRdy Tbl[3] is I Bit 4 in OSRdy Grp is I when any bit in OSRdy Tbl [4] is 1 Bit 5 in osrdyGrp is I when any bit in osrdyTbl[5] is 1 Bit 6 in OsRdyGrp is I when any bit in OSRdyTbl [6] is 1 Bit 7 in OsRdyGrp is I when any bit in OSRdyTbl [ 7] is 1 2002/11
嵌入式操作系统—uC/OS 2002/11 11 就绪状态标志 Bit 0 in OSRdyGrp is 1 when any bit in OSRdyTbl[0] is 1. Bit 1 in OSRdyGrp is 1 when any bit in OSRdyTbl[1] is 1. Bit 2 in OSRdyGrp is 1 when any bit in OSRdyTbl[2] is 1. Bit 3 in OSRdyGrp is 1 when any bit in OSRdyTbl[3] is 1. Bit 4 in OSRdyGrp is 1 when any bit in OSRdyTbl[4] is 1. Bit 5 in OSRdyGrp is 1 when any bit in OSRdyTbl[5] is 1. Bit 6 in OSRdyGrp is 1 when any bit in OSRdyTbl[6] is 1. Bit 7 in OSRdyGrp is 1 when any bit in OSRdyTbl[7] is 1
嵌入式操作糸统一UC/OS 根据优先级找到任务在就绪任务表中的位置 OSRdyGrp oRDy tb1[7] 优先级最高任务 32|1 [1]p5143n2山1o98 [2]23222120981716 [3]130292827262524 [4][3938|373635343332 5][47|46454443424140 6[554535251504948 [7][6362|6160595857|56 任务优先级 优先级最低任务 LOTOTYTYTYIXXⅩ (空闲任务)任务优先级号 2002/11
嵌入式操作系统—uC/OS 2002/11 12 根据优先级找到任务在就绪任务表中的位置 OSRdyGrp 7 6 5 4 3 2 1 0 0 0 Y Y Y X X X 任务优先级 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 23 22 21 20 19 18 17 16 31 30 29 28 27 26 25 24 39 38 37 36 35 34 33 32 47 46 45 44 43 42 41 40 55 54 53 52 51 50 49 48 63 62 61 60 59 58 57 56 [0] [1] [2] [3] [4] [5] [6] [7] OSRdyTbl[7] X Y 优先级最低任务 (空闲任务) 优先级最高任务 任务优先级号
嵌入式操作糸统一UC/OS 根据优先级确定就绪表 假设优先级为12的任务进入就绪状态,12=1100b, 则 OSRdytb[1]的第4位置1,且 OSRdy Grp的第1位 置1,相应的数学表达式为: OSRdy Grp =002 ORDy tb[1]|=0×10 而优先级为21的任务就绪21=10101b,则 ORDy tbl[2]的第5位置1,且 OSRdy Grp的第2位置 1,相应的数学表达式为: OSRdy Grp=0X04 ORDy tb[2]|=0×20; 2002/11
嵌入式操作系统—uC/OS 2002/11 13 根据优先级确定就绪表 ◼ 假设优先级为12的任务进入就绪状态,12=1 100b, 则OSRdyTbl[1]的第4位置1,且OSRdyGrp的第1位 置1,相应的数学表达式为: OSRdyGrp |=0x02; OSRdyTbl[1] |=0x10; ◼ 而 优 先 级 为 21 的 任 务 就 绪 21=10 101b , 则 OSRdyTbl[2]的第5位置1,且OSRdyGrp的第2位置 1,相应的数学表达式为: OSRdyGrp |=0x04; OSRdyTbl[2] |=0x20;
嵌入式操作糸统一UC/OS 根据优先级确定就绪表 ■从上面的计算我们可以得到:若第n位置1,则 应该与2相或。UC/OS中,把2的n=0-7的 8个值先计算好存在数组 OSMapTb刀]中,也 就是: OSMapTb[0]=20=0×1; OSMaptbl[1]=21=0X2 OSMapTbl[7]=27=0X80 2002/11
嵌入式操作系统—uC/OS 2002/11 14 根据优先级确定就绪表 ◼ 从上面的计算我们可以得到:若第n位置1,则 应该与2n 相或。uC/OS中,把2n的n=0-7的 8个值 先计算好存在数组OSMapTbl[7]中,也 就是: OSMapTbl[0] =20=0x1; OSMapTbl[1] =21=0x2; …… OSMapTbl[7] =27=0x80;