此章节:

先决条件

  • Renesas RX 2.05
  • Parasoft C/C++test 具有 Eclipse 的 C/C++test 插件

集成概述

C/C++test 插件通过标准的 Eclipse 插件安装机制与 e2 studio Eclipse IDE 集成;有关详细信息,请参阅 C/C++test 作为插件安装

执行单元测试和应用程序监视

确保您的项目支持“使用模拟器调试”。可以通过在您项目的顶端位置找到"{project_name} Debug.launch”文件来验证是否支持。

更新 Eclipse 工作空间

收集单元测试的覆盖率信息需要注册额外的调试器操作。

  1. 在 e2 studio 中, 转到 窗口> 首选项> C/C++>调试> GDB。
  2. 通过浏览位于以下位置中的 gdb 脚本来修改GDB 命令的值 <CPPTEST_INSTALL_DIR>/bin/engine/etc/templates/for_recipes/RenesasRxGDBinit.gdb

  3. 如果已经指定了 GDB 命令,请将脚本的内容从上述位置附加到已注册的脚本中。

Gdb 脚本设置为在 Excep_BRK() 退出调试器。如果正在执行的程序以其他方式暂停,请相应地修改 gdb 脚本。

更新项目属性

使用 C/C++test 进行单元测试需要将优化设置为 0:

  1. 打开项目属性并转到 C/C++构建> 设置。
  2. 展开 C 和 C++ 编译器的子菜单,然后单击优化
  3. 优化级别字段中选择 0


打开项目属性并转到Parasoft> C/C++test> 构建设置 并配置以下选项:

  • 选项来源
    从下拉菜单中选择管理的 Make C/C++ 项目中的使用选项
  • 编译器设置
    系列下拉菜单中选择Renesas RX C/C++ 编译器 2.5x,并在提示确认更改时单击确定
  • 选项
    编译器选项设置为${cpptest:original_options} -define=PARASOFT_CPPTEST -define=FILE_COMMUNICATION_BUFFER_SIZE=128。
    链接器选项 附加在 ${workspace_loc}\Debug\LinkerSubCommand.tmp 中可用的 start 参数。您的-start 参数可能类似于以下内容:  -start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/0FFD00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC

设置插桩调试启动配置

  1. 复制默认的调试启动配置。新配置将放置在使用 e2 studio 创建的新项目的顶级目录中。
  2. 确保复制的配置会生成可与 e2 studio 随附的调试器一起运行的调试可执行文件。
  3. 重命名新的调试启动配置,以指示它可用于 C++test 的单元测试。
  4. 自定义配置。
    启动选项卡中:
    - 禁用 暂停 复选框。
    - 禁用 设置断点复选框。
    - 启用 恢复 复选框。

    调试器> 调试工具设置 选项卡中:
    - 在内存 部分中,在内存区域 行中的省略号按钮。
    - 将新的仿真 ROM地址空间添加到至少 1MB 的映射中。
    - 修改开始参数 以使用程序区域 {P} 中该新内存空间的开始地址。

起始参数修改示例

对于新的模拟器内存映射行:

仿真 ROM0x010000000x01ffffff16384 千字节

原始项目链接命令的起始参数:

-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/0FFFF0000,FIXEDVECT/0FFFFFF80

更新后的 Parasoft 链接选项:

-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/001000000,FIXEDVECT/0FFFFFF80

可能有必要为更多未初始化的 D 腾出空间

为未初始化的数据分配更多空间

在以下情况下,您可能需要为未初始化的数据腾出更多空间:

  • 插桩的可执行文件的堆空间量超过了默认情况下提供的 RAM 量。
  • 程序由于错误指出给定地址超出其给定部分而无法链接。

要更新内存映射,请按照插桩调试启动配置中的步骤操作,并添加新的仿真 RAM部分(不是仿真 ROM)。

对于新的模拟器内存映射行:

仿真 RAM0x020000000x02ffffff16384 千字节

修改 Parasoft 链接器选项的start 参数,以在内存映射中反映新行。

原始项目链接命令的起始参数:

-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/001000000,FIXEDVECT/0FFFFFF80

更新后的 Parasoft 链接选项:

-start=SU,SI,R_1,R_2,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/001000000,FIXEDVECT/0FFFFFF80,B_1,B_2,B/002000000


可能还需要更新堆栈和堆大小的值。它们由#define HEAPSIZE#pragma stacksize su定义。


设置应用程序监视的示例工作流

从 Parasoft 插桩中排除包含系统初始化或中断代码的源文件:

  1. 右键单击一个源文件或一组选定的源文件,然后转到 Parasoft> C/C++test> 执行设置...
  2. 在对话框中禁用插桩选择的源文件 选项。

这不适用于头文件。


用于应用程序监测的 C/C++test 执行流程需要指向自定义启动配置。设置配置:

  1. 在 IDE 菜单栏中选择Parasoft
  2. 转到测试配置...> 内建>嵌入式系统> Renesas Rx
  3. 复制在 e2 Studio 中可执行的构建和运行 Renesas Rx 应用程序监视 配置。复制的配置将显示在用户定义的类别中。
  4. 打开复制的配置,然后单击执行> 运行时选项卡。
  5. 启用在 debugger(*) 中运行测试复选框。
  6. 启用将 Eclipse 内部调试器与配置一起使用: 选项,然后从下拉菜单中选择新的调试启动配置


  • No labels