章节目录:
先决条件
- 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 工作空间
收集单元测试的覆盖率信息需要注册额外的调试器操作。
- 在 e2 studio 中,前往 Window> Preferences> C/C++> Debug> GDB。
通过浏览位于以下位置的 gdb 脚本来修改 GDB Command 的值
<CPPTEST_INSTALL_DIR>/bin/engine/etc/templates/for_recipes/RenesasRxGDBinit.gdb
。- 如果已经指定了 GDB Command,需将脚本的内容从上述位置追加到已注册的脚本中。
gdb 脚本设置为在 Excep_BRK() 的位置退出调试器。如果正在执行的程序以其他方式暂停,需相应修改 gdb 脚本。
更新项目属性
使用 C/C++test 进行单元测试需要将优化设置为 0:
- 打开项目属性并前往 C/C++Build> Settings。
- 展开 C 和 C++ 编译器的子菜单,然后点击 Optimize。
- 在 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
设置插桩调试启动配置
- 复制默认的调试启动配置。新配置将放置在使用 e2 studio 创建的新项目的顶级目录中。
- 确保复制的配置会生成可与 e2 studio 随附的调试器一起运行的调试可执行文件。
- 重命名新的调试启动配置,以指示该配置可用于 C++test 的单元测试。
- 自定义配置。
在 Startup 选项卡中:
- 禁用 Halt 复选框。
- 禁用 Set breakpoint at 复选框。
- 启用 Resume 复选框。
在 Debugger> Debug Tool Settings 选项卡中:
- 在 Memory 部分,点击 Memory Areas 行的省略号按钮。
- 将一个至少 1MB 的新 Emulation ROM 地址空间添加到映射中。
- 修改 start 参数以使用此新内存空间的起始地址作为程序区域 {P} 的起始地址。
start 参数修改示例
对于新增的 Simulator Memory Map Row:
Emulation ROM | 0x01000000 | 0x01ffffff | 16384 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 RAM | 0x02000000 | 0x02ffffff | 16384 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 插桩中排除包含系统初始化或中断代码的源文件:
- 右键点击一个源文件或一组选定的源文件,然后前往 Parasoft> C/C++test> 执行设置...。
- 在对话框中禁用插桩选中的源文件选项。
用于应用程序监控的 C/C++test 执行流程需要指向自定义启动配置。设置配置的步骤:
- 在 IDE 菜单栏中选择 Parasoft。
- 前往测试配置...> 内建> Embedded Sysems> Renesas Rx。
- 复制 Build and Run Renesas Rx Application Monitoring Executable in e2 Studio 配置。复制的配置将显示在用户自定义分类中。
- 打开复制的配置,然后点击执行> 运行时选项卡。
- 启用在调试器 (*) 中运行测试复选框。
- 启用使用带有如下配置的 Eclipse 内部调试器: 选项,然后从下拉菜单中选择新增的调试启动配置 。