新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Cortex-M3的μC/OS-II任务调度硬件指令实现

Cortex-M3的μC/OS-II任务调度硬件指令实现

作者:时间:2011-03-24来源:网络收藏

假设在OSRdyTb1[]的低32位数据中,00000000000000000000000000001100B表示优先级为2的和优先级为3的处于就绪态,现在要通过RBIT和CLZ找出优先级为2的运行。运行RBIT后数据变为:00110000000000000000000000000000000000。运行CLZ后计算出前导零的个数为2,表明优先级为2的任务处于最高就绪态。
μC/中的任务是通过查两次表完成最高优先级任务的查找,方法如下:
h.jpg
上述代码在MDK4.12软件中测试,系统时钟采用8 MHz,按照此方法进行任务可节省0.5μs,同时还减少了用来存放OSUnMapTb1[]的256字节的空间,缩短了代码运行时间,提高了CPU的利用率。此方法在μC/的任务通信中也同样适用。在此不再赘述。

结语
本文主要对μC/中的任务调度算法作了分析,特别阐述了OSUnMapTb1[]表是如何构成的,同时介绍了基于ARM 处理器平台的μC/OS-II的任务调度方法,简化了μC/OS-II的代码,提高了处理器的性能。

本文引用地址:http://www.eepw.com.cn/article/150928.htm

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭