支持概要

支持的编译器

有关支持的 EWARM(Embedded Workbench for ARM)编译器/环境版本的信息,请参阅编译器

导入 EWARM 项目

您可以使用 cpptesttrace 工具导入 EWARM 项目。更多信息请参阅使用 IAR Embedded Workbench 支持进行项目导入

支持组件

为便于测试 IAR Embedded Workbench 项目,提供以下组件:

  • 支持的特定 ARM IAR 编译器版本的编译器配置(在上文列出)。
  • “使用 IAR Embedded Workbench 项目中的选项”选项源。
  • “导入 IAR Embedded Workbench 项目”导入器 GUI。
  • CLI/批处理模式导入器:“-ewp”选项 +“settings”属性:“ewp.import.config”、“ewp.import.linked”、“ewp.import.location”、“ewp.import.subdirs”、“ewp.import.pathvar.enabled”、“ewp.import.pathvar.name”、“ewp.import.pathvar.value”。

  • “IAR_iccarm.mk”运行时库构建配置文件,用于使用 'make' 通过从 v. 6.1x 开始的 IAR ARM 编译器版本构建 C++test·运行时库。
  • 为在 C-SPY 模拟器上启动单元和应用程序测试准备的测试配置:
    • Run IAR EW Tests (Batch Template) - 使用 EW 生成的批处理脚本('.cspy.bat')启动模拟器。
    • Run IAR EW Application with Mem Monitoring (Batch Template) - 使用 EW 生成的批处理脚本('.cspy.bat')启动模拟器。
    • Run IAR ARM Tests - 纯手动模拟器配置。
    • Run IAR ARM Application with Mem Monitoring - 纯手动模拟器配置。

已知局限性

    • 源自旧 EW 版本或通过其他方式生成的项目文件中可能缺少一些选项描述。如果这种情况发生在使用基于 GUI 的 EW 项目导入器时,C++test 将认为相应的编译器/链接器选项不存在,并依赖于工具默认值。这可能与 EW 为缺少描述的选项提供内部默认值的方法相冲突。
    • 基于 C++test GUI 的 EW 项目导入器不支持以下 IAR EW 项目(.ewp)设置: 
      • 常规选项> 库配置> CMSIS> DSP设置会被忽略(针对链接器选项)。
        解决方法:在 Parasoft> C++test> 构建设置> 链接器选项中手动追加相应的库
      • 常规选项> 目标> FPU设置会被忽略。
        解决方法:在项目属性> Parasoft> C++test> 构建设置> 编译器选项中手动添加相应的--fpu 选项。
      • 链接器> 列表> 生成链接器映射文件设置会被忽略。
        解决方法:在项目属性> Parasoft> C++test> 构建设置> 链接器选项中手动添加相应的 --map 选项。 
      • .no_neon- 指定的核心名称不提供给 Cortex-Ax 核心的 --cpu 选项,不受常规选项> 目标> FPU 设置的影响。
        解决方法:在项目属性> Parasoft> C++test> 构建设置中将使用 IAR Embedded Workbench 项目中的选项模式切换到手动指定所有选项并手动调整所有选项。 
    • 由于某些 IAR ARM 编译器版本附带的预处理器的限制,C++test 不接受 IAR ARM 编译器 v. 7.2x 及更早版本的以下代码:

      #define MHZ *1000000l 
      #define FREQ (1MHZ)
       
      void foo(long freq);
       
      void bar(void)
      {
             foo(FREQ);
      }

      解决方法:应在 1MHZ之间插入空格:

      #define FREQ (1 MHZ)
         

    • C++test 不支持 __nounwind 关键字,因为异常在捕获后会重新抛出。如果您的程序包含 __nounwind,将以下宏添加到项目属性> Parasoft> C++test> 构建设置的编译器选项中:

      -DCPPTEST_COLLECT_STACK_TRACE=0
       

    • C++test 不能正确重构 C 语言中的多字节字符。
    • IAR EW Build System(和 'iarbuild' 命令行工具)会在 EWP 项目中定义的每个包含路径的末尾添加 '\' 字符(反斜杠)。这在扫描/跟踪这些构建后反映在 BDF 中。
      C++test 引用包含路径选项,因此它必须转义反斜杠以防止转义结束的引号。由于一个与 iccarm 相关的错误,当一个路径选项包含任何空格以及结尾的双反斜杠序列时,即使用引号括起来,它也不会被解释为一个单独的选项。
      有两种解决方法:

      • 在无空格路径上安装 IAR EW,防止包含路径中出现空格。

      • 对 BDF 进行后处理,从路径选项中删除任何结尾反斜杠,或者转义其中的所有空格。


  • No labels