Login

RVDS 编译器

ARM RVDS™ 4.1 中的 ARM®  编译器是唯一一个与 ARM 处理器联合开发的商用编译器,专门设计用于为 ARM 架构提供最优支持。该编译器的开发历经 20 年,它被公认为业界标准的面向 ARM 处理器 C 和 C++ 编译器,用于生成面向 ARM、Thumb、Thumb-2、VFP 和 NEON 指令集的应用程序。
  • ARM 处理器设计用于以最佳方式执行 ARM 编译器生成的代码
  • ARM 编译器支持所有 ARM 处理器中的新增处理器功能
  • 由分析驱动的编译将自动基于运行时信息优化代码 
  • ARM 编译器支持生成 Symbian OS 和 ARM Linux 应用程序及库

RVDS 4.1 编译器与 RVDS 4.0 相比,最佳代码大小减少了多达 5%,并使最佳性能提高了 10-15%。

除了 ARM 编译器之外,先进的 NEON 矢量化编译器(RVDS 专业版的一部分)支持从标准的 C 和 C++ 代码自动生成 ARM NEON SIMD 代码序列。NEON 矢量化编译器可使关键多媒体内核的速度提高 4 倍,最终使整体应用程序性能提高 2 倍。

矢量化示意图

针对成本极为敏感型设备的开发

为进一步提高基于 ARM 处理器的一系列应用程序的代码密度,ARM 编译器特别提供了一个可选的 microlib C 库(ISO 标准 C 运行时库的子集),该库的大小已针对微控制器应用进行了最小化。microlib C 库的运行时库代码大小缩减了 92%。

与 Cortex-M 类处理器结合使用时,microlib C 库提供完全基于 C 语言的开发环境,而不必还原为汇编语言 - 即便对中断服务例程也是如此。这样就无需具体了解 ARM 体系结构。

Dhrystone 总代码大小

microlib C 库所节省的内存空间将取决于应用程序,“hello world”应用程序可节省 97%,Dhrystone 之类的较为复杂的应用程序可节省 50%。

降低 Linux 应用程序开发的风险

ARM 编译器团队所创建的针对 ARM 体系结构的 ABI 同样可在 ARM GNU 编译器中实现。这样,即可支持创建和使用可在不同开发环境间共享的库。

GNU 编译器与 ARM 编译器相互兼容意味着可以使用 ARM 编译器生成 Linux 应用程序。ARM 编译器能为您的开发团队提供高质量的商用工具包可提供的卓越的支持和性能、稳定性和代码大小优势。

精确的代码生成

现今的许多算法都是使用浮点数据表示法从数学建模软件自动生成的。因此,IEEE 位表示和浮点表示的精度对于生成的代码能否正确运算至关重要。ARM 编译器选择的默认库提供完整的 C/C++ 功能,包括 C++ 异常处理和 IEEE 754 浮点支持。该编译器可选择性地生成代码以使用软件浮点或任何 ARM 硬件浮点单元。不论使用哪种方法,该编译器均可生成符合 IEEE 754 标准的完整代码。这意味着您的应用程序将生成完全相同的数据,而不论采用哪种目标处理器,从而加快了从某一设备到其他设备的移植。

面向高等数学和 DSP 样式的解决方案

内部函数提供针对未能很好地映射到高级语言的公用代码序列或指令的支持。 

  • ETSI 内部函数提供用在若干示例算法中的电信基元
  • TI C55 内部函数支持为利用特定于 TI 的扩展而编写的算法
  • Cortex-M4 内部函数用于面向板载 DSP
  • 其他内部函数允许访问从 C 语言不易访问的所有 ARM 硬件指令,降低了以汇编语言编写代码的需要

尽可能在早期处理器上模拟内部函数。

内部函数优化取决于目标处理器

 

 
Maximise