ARM 嵌入式系统开发综述

ARM 开发工程师入门宝典
技术分类: 电子/测试    来源:设计创新  发表时间:2007-10-18
势有以下几点。当用户使用-O3选项时:
  ――编译器会自动对代码进行高阶标量优化。所谓的高阶标量优化就是编译器对根据代码特点,针对循环、指针等进行高阶优化。
  ――编译器会把尽可能多函数的编译为内联(inline)函数;
  ――Multifile compilation功能被自动使能。
  
  对于循环与指针的高阶优化(High-level scalar optimizations)
  当编译选项为-O3  –Otime时,RVCT会根据代码的具体情况,针对循环、指针等部分作高阶优化工作:循环解开(Loop unrolling)、融合(fusion)、位置调整(interchange)、指针优化等等。以例2的函数为例。例2是一段简单的C循环函数,在循环中含有数组指针调用。
  例2
  CodeA
  void increment(int *restrict b,    int *restrict c)
  {          int i;
  for
(i = 0; i < 100; i++)
  {
  c[i] = b[i] + 1;
  }
  }
  CodeB
  void increment(int *b, int *c)
  {
  int i;
  int *pb, *pc;
  int b3, b4;
  pb = b - 1;
  pc = c - 1;
  b3 = pb[1];
  for (i = (100 / 2); i != 0; i--)
  {
  b4 = *(pb += 2);
  pc[1] = b3 + 1;
  b3 = pb[1];
  *(pc += 2) = b4 + 1;
  }
  }
  仔细观察可以发现,CodeA与CodeB可以完成同样的功能,即将数组b的每个成员加1赋值给数组c对应成员。但是CodeB与CodeA相比,有较高的执行速度。主要体现在以下几点:
  ――循环100次变成了循环50次(loop unrolling),减少了跳转次数;
  ――数组变成了指针,减少每次计算数组偏移量的指令;
  ――微调了不同代码操作的执行顺序,减少了流水线stall的情况;
  ――循环从++循环变成了――循环。这样可以使用ARM指令的条件位,为每次循环减少了一条判断指令。
  很多程序员就是这样,通过这种手写不同的C 代码,再实现相同任务的情况下,提高了代码执行效率。
  在RVDS中,使用-O3  –Otime编译选项,RVCT会自动帮助程序员进行这些高阶标量优化,即,RVCT会直接将CodeA 优化成以前由CodeB才能得到的汇编代码。虽然优化之后函数的代码尺寸大于原先的函数,但是执行速度却有大大的提高,经过统计,使用EEMBC benchmarking,  -O3编译选项编译得到的最终代码平均性能相对于-O1可以有10%的提升,而总体代码尺寸只增加了1%。

  3.2 Multifile compilation
  按照传统的编译方式,我们先把各个C或C++文件单独编译成.obj文件,再将这些目标文件链接在一起。考虑到虽然在编译单独的C 或C++文件时,编译器会充分发挥它的优化特性;但此时,编译器无法关注到大量的C 或C++文件接口之间可以优化的部分。所以在传统的编译结果里,还有许多优化的余地。如何才能让编译器同时关注和编译所有的源代码呢?

  Multifile compilation是RVDS一个较新的特性,它可以帮助开发人员将所有的源文件作为一个compilation unit进行编译,并最终生成一个大的目标文件(如图3中的file1.o)。Mutifile compilation给软件开发人员带来的直接优势有以下几点:
  ――增加inline的可能性。由于inline只能发生在一个compilation unit中,所以在没有使用mutifile compilation时,inline只能发生在一个源文件范围内。Multifile Compilation将一个compilation unit扩大到了所有源文件的范围上,所以直接增加了inline发生的几率。
  ――增加了基地址与函数间优化的可能性。同inline一样,所有的基地址与函数间的优化也必须在一个compilation unit中,随着conpilation unit的扩大这种优化的可能性也增加了。
  ――减少了scatter file的复杂性。
  


图5  Mutifile compilation工作原理

  3.3 调试
  由前面的介绍已经知道RealView Debugge


















































1】【2】【3】【4】【5】【6】【7】【8
收藏此页】【  】【打印】【关闭

精彩专题

超值订阅2009年度DESIGN NEWS China杂志

DESIGN NEWS China杂志向国内读者介绍国际上最先进的工业技术与设计,涉及电子/测试、运动控制/自动化、创新材料、工程软件/硬件、汽车设计等领域,现在订阅可获更多优惠…[ 详细内容 ]

浏览该文章的用户还看过

  • 文章
  • 论坛
  • 博客