首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
根据μc/Os-Ⅱ就绪表算法在ARM架构上的改动
来源:本站整理  作者:佚名  2010-04-27 15:39:44



  2.4  THUMB-2汇编指令实现
  用汇编语言写程序时的技巧:在最高优先级任务的设置、清除函数中,C语言运算符“︱=”对等汇编指令“orr”,“&=~”对等汇编指令“bic。这两条指令都可以进行预移位操作,大幅提高执行效率。可以查看反汇编源码,看C编译器是否利用了这一便利。
  在查找函数中,可以省去C语言程序中的内嵌汇编调用,减少冗余指令。示意伪代码如下:
  ldr rO,  =OsRdyGrp;加载就绪表组变量OSRdyGrp地址
 
  可以看出,除了数据加载指令外,查找的核心算法仅3条指令(使用<32个任务时,仅1条指令)。不过在实际设计算法的时候,还需要考虑指令流水线停顿,方能达到最佳的效果。
 
  2.5  μC/OS-Ⅱ2.84版相关源码介绍
  以下是翻译整理后的μC/OS-Ⅱ优先级查找算法源码(2.84版),较长的注释是添加的算法说明。
  clz最高优先级查找算法,与μC/OS-Ⅱ的新算法有所不同:返回的结果分别是8位、16位整数。这是因为8位已经不能表示>255的值;过程中clz算法更多地使用16或32位整数,以充分利用芯片性能。
  3  适用范围
  等待任务列表使用了与就绪表操作相似的过程,注意要同时更改其数据类型和算法。算法虽然是在Cortex—M3上执行的,但适用于ARM9及其以后芯片。支持ARM指令集的芯片,可以在C语言中使用内嵌汇编,不必再编写汇编查找函数。
  本文所叙述的算法适用于下述两种情况。
  ①使用μC/OS-Ⅱ系统:
  ◆要求更多的任务优先级;
  ◆要求产品性能优越或是时间关键的应用,想进一
  步提高效率;
  ◆学习、研究或希望优化μC/OS-Ⅱ以扩展其应用范围。
  ②未使用μC/OS-Ⅱ系统:
  ◆移植改造其他操作系统的就绪表算法;
  ◆编写新操作系统或执行调度程序;
  ◆编程爱好者借鉴、改进编程方法。
 
  结  语
  Cortex-M3推出时,笔者就认定它是单片机过渡到ARM的有力工具,其小存储量使得它更适合用小型实时系统。在学习μC/OS-Ⅱ的过程中,发现其就绪表操作算法经过改动或许更好,于是就做了本文所述的试验。

上一页  [1] [2] 

关键词:

相关阅读

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:37,562.50000 毫秒