您的位置 首页 被动

uCOS II安排妥当表(Ready List)剖析

就绪表(Ready List)每个任务被赋予不同的优先级等级,从0级到最低优先级OS_LOWEST_PR1O,包括0和OS_LOWEST_PR1O在内(见文件OS_CFG.H)。当uCOS II初始

安排妥当表(Ready List)

每个使命被赋予不同的优先级等级,从0级到最低优先级OS_LOWEST_PR1O,包含0和OS_LOWEST_PR1O在内(见文件OS_CFG.H)。当uCOS II初始化的时分,最低优先级OS_LOWEST_PR1O总是被赋给闲暇使命idle task。留意,最多使命数目OS_MAX_TASKS和最低优先级数是没有联系的。用户应用程序能够只要10个使命,而依然能够有32个优先级的等级(假如用户将最低优先级数设为31的话)。

每个使命的安排妥当态标志都放入安排妥当表中的,安排妥当表中有两个变量OSRedyGrp和OSRdyTbl[]。在OSRdyGrp中,使命按优先级分组,8个使命为一组。OSRdyGrp中的每一位表明8组使命中每一组中是否有进入安排妥当态的使命。使命进入安排妥当态时,安排妥当表OSRdyTbl[]中的相应元素的相应位也置位。安排妥当表OSRdyTbl[]数组的巨细取决于OS_LOWEST_PR1O(见文件OS_CFG.H)。当用户的应用程序中使命数目比较少时,削减OS_LOWEST_PR1O的值能够下降uCOS II对RAM(数据空间)的需求量。

为确认下次该哪个优先级的使命运行了,内核调度器总是将OS_LOWEST_PR1O在安排妥当表中相应字节的相应方位1。OSRdyGrp和OSRdyTbl[]之间的联系见图3.3,是按以下规矩给出的:

当OSRdyTbl[0]中的任何一位是1时,OSRdyGrp的第0方位1,

当OSRdyTbl[1]中的任何一位是1时,OSRdyGrp的第1方位1,

当OSRdyTbl[2]中的任何一位是1时,OSRdyGrp的第2方位1,

当OSRdyTbl[3]中的任何一位是1时,OSRdyGrp的第3方位1,

当OSRdyTbl[4]中的任何一位是1时,OSRdyGrp的第4方位1,

当OSRdyTbl[5]中的任何一位是1时,OSRdyGrp的第5方位1,

当OSRdyTbl[6]中的任何一位是1时,OSRdyGrp的第6方位1,

当OSRdyTbl[7]中的任何一位是1时,OSRdyGrp的第7方位1,

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/297743.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部