章节目录:

先决条件

  • Renesas RX 2.05
  • Eclipse 安装 Parasoft C/C++test 插件

集成概述

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

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

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

更新 Eclipse 工作空间

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

  1. 在 e2 studio 中,前往 Window> Preferences> C/C++> Debug> GDB
  2. 通过浏览位于以下位置的 gdb 脚本来修改 GDB Command 的值 <CPPTEST_INSTALL_DIR>/bin/engine/etc/templates/for_recipes/RenesasRxGDBinit.gdb

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

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

更新项目属性

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

  1. 打开项目属性并前往 C/C++Build> Settings
  2. 展开 C 和 C++ 编译器的子菜单,然后点击 Optimize
  3. Optimize level 字段中选择 0


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

  • 选项源
    从下拉菜单中选择使用 Managed Make C/C++ 项目中的选项
  • 编译器设置
    种类下拉菜单中选择 Renesas RX C/C++ Compiler 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. 自定义配置。
    Startup 选项卡中:
    - 禁用 Halt 复选框。
    - 禁用 Set breakpoint at 复选框。
    - 启用 Resume 复选框。

    Debugger> Debug Tool Settings 选项卡中:
    - 在 Memory 部分,点击 Memory Areas 行的省略号按钮。
    - 将一个至少 1MB 的新 Emulation ROM 地址空间添加到映射中。
    - 修改 start 参数以使用此新内存空间的起始地址作为程序区域 {P} 的起始地址。

start 参数修改示例

对于新增的 Simulator Memory Map Row

Emulation ROM0x010000000x01ffffff16384 KBytes

原始项目链接命令的 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/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 量。
  • 程序因错误而链接失败,错误提示给定地址超出其指定的区段。

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

对于新增的 Simulator Memory Map Row

Emulation RAM0x020000000x02ffffff16384 KBytes

修改 Parasoft 链接器选项的 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/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. 前往测试配置...> 内建> Embedded Sysems> Renesas Rx
  3. 复制 Build and Run Renesas Rx Application Monitoring Executable in e2 Studio 配置。复制的配置将显示在用户自定义分类中。
  4. 打开复制的配置,然后点击执行> 运行时选项卡。
  5. 启用在调试器 (*) 中运行测试复选框。
  6. 启用使用带有如下配置的 Eclipse 内部调试器: 选项,然后从下拉菜单中选择新增的调试启动配置


  • No labels