安装 Rational Test RealTime integration for Rhapsody
安装需要以下三步:
- 在 Rhapsody 中创建 Rational Test RealTime 菜单。
- 在 Rhapsody 中创建一个新的 Rational Test RealTime 配置。
- 更新 Rational Test RealTime 的批处理文件。
在 Rhapsody 中创建 Rational Test RealTime 菜单
- 通过打开提供有以下产品的范例来启动 Rhapsody :
C:\Program Files\Telelogic\Rhapsody 7.4\Samples\CSamples\pacemaker\pacemaker.rpy
- 在 Rhapsody 中,点击 Tools > Customize。然后 Helpers 窗口就会打开了。
- 点击 New 按钮以创建一个名为 Test RealTime 选项的新定制菜单。
在 Command 区域中,输入以下的行: -
C:\Program Files\Rational\TestRealTime\bin\intel\win32\TestRTcl.exe
- 在 Arguments 中,输入
TestRTRhap.opt
- 选择 Show in Tools menu,如图 1 所示,然后点击 Apply。
图 1. New Test RealTime 选项菜单
- 点击 New 按钮以创建一个名为 Test RealTime Results 的新定制菜单。
- 在 Command 中,输入以下的命令行:
C:\Program Files\Rational\TestRealTime\bin\intel\win32\studioreport.exe
- 在 Arguments 中,输入:
*/*/attolccReport.xtp
- 选择 Show in Tools menu,如图 2 所示,然后点击 Apply。
图 2. New Test RealTime Results 菜单
- 点击 New 按钮以创建一个名为 Test RealTime Clean 的新定制菜单。
- 在 Command 中,输入以下的命令行:
C:\Program Files\Rational\TestRealTime\bin\intel\win32\studioreport.exe
- 在Arguments中,输入:
-clean */*/attolccReport.xtp
- 选择 Show in the Tools 菜单,如图 3 所示,然后点击 Apply。
图 3. New Test RealTime Clean 菜单
- 点击 New 按钮以创建一个名为 Test RealTime Clean All 的新定制菜单。
- 在 Command 中,输入以下的命令行:
C:\Program Files\Rational\TestRealTime\bin\intel\win32\studioreport.exe
- 在 Arguments 中,输入: -cleanAll */*/attolccReport.xtp
- 选择 Show in the Tools menu ,如图 4 所示,然后点击 OK。
图 4. NewTest RealTime CleanAll 菜单
在 Rhapsody 中创建一个新的 Rational Test RealTime 配置
- 在 Rhapsody 项目树形结构中,右击
<<Executable>>EXE
,如图 5 所示,然后点击 Set as Active。
图 5. Entire Model View 中的 Rhapsody 项目树形结构
- 为了创建一个新的配置,复制已经存在
Host
配置并重命名复制为Host_Coverage
。 - 在 Configurations 节点中创建一个 Host 配置的拷贝。新的配置会自动命名为
Host_copy
,如图 6 所示。
图 6. Host 的拷贝
- 右击
Host_copy
,如图 7 所示,然后点击 Set as Active。
图 7. Host_拷贝
- 双击
Host_copy
配置并将其重命名为Host_Coverage
。
图 8. 重命名 Host 拷贝
- 点击 Settings 项,并在 Environment 下拉列表中,选择合适的编辑器,如图 9 所示。
图 9. 选择一个汇编器
(点击查看大图)
- 确保 Instrumentation Mode 被设置成 Animation,如图 10 所示。
图 10. 设置 Instrumentation 模式
(点击查看大图)
- 点击 Properties 项并选择 View Common > All,如图 11 所示。
图 11. 选择所有
- 展开
C_CG
属性并选择构建环境。 - 将 InvokeMake 属性从
msmake.bat
更改为msmakeRTRT.bat
,如图 12 所示(或者从CygwinMake.bat
到CygwinMakeRTRT.bat
,根据您的环境而定)。
图 12. 更改属性名
(点击查看大图)
- 点击 OK。
为 Rational Test RealTime 更新“Make batch file”
这个段落描述了怎样更新“Make batch file”,以汇编 Cygwin(一种在 Windows 中模拟 Linux® 的环境)或者 Microsoft® Visual Studio® Version 6。
- 对于 Cygwin:更新
CygwinMake.bat
文件。 - 对于 Microsoft Visual Studio V6:更新
msMake.bat
文件。
更新 CygwinMakeRTRT.bat 文件
- 复制并重命名以下的文件:
<RhapsodyInstallDir>\Share\etc\CygwinMake.bat
到:<RhapsodyInstallDir>\Share\etc\CygwinMakeRTRT.bat
- 编辑
CygwinMakeRTRT.bat
文件并作出以下的更改:设置环境变量 ATLTGT 为已选择的构建环境:设置ATLTGT=%TESTRTDIR%\targets\cpcgnu
添加以下的代码:set RT_OPT=-opt=../../TestRTRhap.opt -act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl -env_OMROOT=<RhapsodyInstallDir> -env_OMROOT="C:\Progra~1\Telelogic" -noinstrdir="C:\Program Files\Telelogic\Rhapsody74\Share"
在每一行的结尾添加以下代码:CC="attolcc %RT_OPT% -- gcc" LINK_CMD="attolcc %RT_OPT% -- g++"
列表 1 显示了 CygwinMakeRTRT.bat
文件应该是什么样的。
列表 1. 范例 CygwinMakeRTRT.bat 文件
@echo off PATH=c:\cygwin\bin;%PATH% if "%2"=="" set target=all if "%2"=="build" set target=all if "%2"=="rebuild" set target=clean all if "%2"=="clean" set target=clean set RT_OPT=-opt=../../TestRTRhap.opt -act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl -env_OMROOT="C:\Progra~1\Telelogic" -noinstrdir="C:\ Progra~1\Telelogic\Rhapsody74\Share" echo Setting environment for Cygwin echo "make.exe" make -s %target% -f %1 CC="attolcc %RT_OPT% -- gcc" LINK_CMD="attolcc %RT_OPT% -- g++"
更新 msmakeRTRT.bat 文件
- 复制并重命名以下的文件:
<RhapsodyInstallDir>\Share\etc\msmake.bat
到:
<RhapsodyInstallDir>\Share\etc\msmakeRTRT.bat
- 编辑
msmakeRTRT.bat
文件以进行以下的更改:- 添加以下的代码行:
set RT_OPT=-opt=../../TestRTRhap.opt -act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl -env_OMROOT=<RhapsodyInstallDir> -env_OMROOT="C:\Progra~1\Telelogic" -noinstrdir="C:\Program Files\Telelogic\Rhapsody74\Share"
- 在每一行的结尾添加以下的代码行:
CC="attolcc %RT_OPT% -- cl" LINK_CMD="attolcc %RT_OPT% -- link"
- 添加以下的代码行:
- 编辑
Vcvars32.bat
文件以设置环境变量 ATLTGT 为选择的构建环境:set ATLTGT=%TESTRTDIR%\targets\cvisual6
列表 2 显示了文件 msmakeRTRT.bat
应该是什么样的。
列表 2. 范例 msmakeMakeRTRT.bat 文件
@echo off if "%2"=="" set target=all if "%2"=="build" set target=all if "%2"=="rebuild" set target=clean all if "%2"=="clean" set target=clean rem ensure that the following bolded code is on one line set RT_OPT=-opt=../../TestRTRhap.opt -act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl -env_OMROOT="C:\Progra~1\Telelogic" -noinstrdir="C:\ Progra~1\Telelogic\Rhapsody74\Share" set MAKEFLAGS= call "C:\Program Files\Telelogic\Rhapsody 7.4\Share\etc\Vcvars32.bat" x86 echo ''nmake.exe rem ensure that the following bolded code is on one line nmake /nologo /S /F %1 %target% %3 %4 %5 %6 CC="attolcc %RT_OPT% -- cl" LINK_CMD="attolcc %RT_OPT% -- link"
列表 3 显示了Vcvars32.bat
文件应该是什么样的。
列表 3. 范例 Vcvars32.bat 文件
@echo off rem rem Root of Visual Developer Studio Common files. .... set VcOsDir= set VSCommonDir= rem ATLTGT for TestRealTime set ATLTGT=%TESTRTDIR%\targets\cvisual6
Rhapsody with Microsoft Visual Studio V6 中工具的范例
编辑 Host_Coverage 配置
- 打开 Host_Coverage 配置,并在 Settings 窗格中,选择 Microsoft。
- 确保以下的选项设置成如图 13 所示。
- Instrumentation 模式设置成 Automation;
- Environment 被设置成 Microsoft
- Build 被设置成 Debug
图 13. 验证 Host_Coverage 设置
(点击查看大图)
- 在 Properties 项上,选择 View all,
- 在 C_CG 中,Microsoft ® 之下,将 InvokeMake 设置从 msmake.bat 更改为 msmakeRTRT.bat,如图 14 所示。
图 14. 属性
(点击查看大图)
- 点击 OK。
使用 Rational Test RealTime 来实现
- 从 Rhapsody 项目中,选择 Tools > Test RealTime 选项,如图 15 所示。
图 15. Open工具
- 点击 Enable,如图 16 所示。
图 16. Enable按钮
- 如有需要,您可以更改设置。例如,在 Other Options 中添加
-verbose
,如图 17 所示。
图 17. Specify 选项
- 点击 Apply,然后点击 OK。
向模型添加 Rational Test RealTime 转储点
Rational Test RealTime 是为嵌入式和实时系统设计的,它通常都是设置成从不停机的。在这种情况下,运行时分析结果都在目标内存中得到评价,直到您决定将其返回至主机为止 。
因此,您必须添加一个转储命令到 Pacemaker 转变中。您可以这样做:
- 从 Packages 树中:
- 从 PaceMaker 状态表中:
从 Packages 树添加一条转储命令
- 点击 Enable。
- 在 Packages 树中选择转储命令(图 18)。
图 18. 选择“from On”
- 在 General 项上,操作代码中( Action 区域中)添加以下的声明,如图 19 所示。
#pragma attol insert _ATCPQ_DUMP(1); printf("TestRT results dumped!\n");
图 19. 指定转变操作
(点击查看大图)
向 PaceMaker 状态表添加一条转储命令
- 选择并双击 evOFF 转变,如图 20 所示。
图 20. evOFF 转变
- 在 General 项上,Action 代码中,添加以下的声明,如图 21 所示。
#pragma attol insert _ATCPQ_DUMP(1); printf("TestRT results dumped!\n");
图 21. 指定转变操作
- 点击 OK。
生成并构建代码
- 为了生成代码,选择 Code > Generate > Ctrl-F7 并点击 Yes,如图 22 所示。
图 22. 创建 Host_Coverage 目录
- 为了构建生成的代码,选择 Code > Build > Build EXE.exe (F7),如图 23 所示。
图 23. 构建代码
注意:只会处理带有更改配置的组件。
当构建完成时,Build 项会显示为 Build Done 状态,如图 24 所示。
图 24. 构建信息
运行操作程序
- 点击 Exclamation (!)按钮,如图 25 所示。
图 25. Exclamation 按钮
- 点击以下的图标,如图 26 所示。
图 26. 点击 Run 按钮
- 选择 Tools > Animated State chart ,如图 27 所示。
图 27. 选择 Animated 状态表
- 选择 Pacemaker[0] 实例,如图 28 所示,然后点击OK。
图 28. 选择实例
状态表会以默认的 OFF 状态打开,如图 29 所示。
图 29. OFF 状态下的状态表
(点击查看大图)
- 您可以与测试下的系统相交流。点击 Event Generator 按钮,如图 30 所示。
图 30. 点击 Event Generator
- 点击 Select 并选择 Pacemaker[0]实例。在 Event 列表中,选择一个事件,如图 31 所示。
图 31. 选择一个事件
- 点击 OK。
检查 Rational Test RealTime 结果
- 打开 Rational Test RealTime GUI 中的 Coverage 结果。点击 Stop 按钮以停止执行,如图 32 所示。
图 32. 点击 Stop
- 在 Rhapsody 中,选择 Tools > Test RealTime Results。这会打开带有结果的 Rational Test RealTime ,如图 33 所示。
图 33. Code Coverage [attoIccReport]
(点击查看大图)
添加工具到 Rhapsody 框架
内存文件报告可以向您展示许多内存外泄。这是因为 Rhapsody 框架执行在程序层次不能见的内存分配。为了处理它,您必须在工具中包含 Rhapsody 框架。
- 复制原始的
msbuild.mak
文件,它位于C:\Program Files\Telelogic\Rhapsody74\Share\LangC
- 对于 Microsoft 文件编写,您构建带有标准库的工具库。为了做到这一点,复制组成库(不是.dll)的行:一旦清除前面构建中生成的文件,那么第二次将会构建相同的带有 Rational Test RealTime 工具和 Rational Test RealTime 前缀的库:
列表 4 显示了在更改 .axf 库之间的范例。
列表 4. 更改之前的代码
oxflibs : cd oxf $(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET) $(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET) $(MAKE) -f msoxf.mak CFG="distrib_oxf" $(BUILD_TARGET) $(MAKE) -f msoxf.mak CFG="distrib_oxfinst" $(BUILD_TARGET) cd ..
列表 5 显示了更改之后的相同范例。
列表 5. 带有复制行的代码
oxflibs : cd oxf $(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET) $(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET) LIB_PREFIX=RTMS clean $(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET) LIB_PREFIX=RTMS CPP="Attolcc -memprolib --no_sys_include -noTDP -- cl" $(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET) $(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET) LIB_PREFIX=RTMS clean $(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET) LIB_PREFIX=RTMS CPP="Attolcc -memprolib --no_sys_include -noTDP -- cl" etc ... cd ..
- 重构有合适内存文件 Rhapsody 框架的库:点击 Code > Build Framework,如图 34 所示。
图 34. 重构库
在框架执行和构建过程结束之后(大概会花 5 分钟),重构 PacemakerEXE 文件以集成框架的新执行库到最终的可执行代码中。
生成更多运行时分析的结果
- 在 Rhapsody 中,选择 Tools > Test RealTime Options。
- 选择您想要使用的 Runtime Trace, Memory, or Performance Profiling 工具,如图 35 所示。
图 35. 选择工具进行激活
- 点击 OK 再点击 Code > Rebuild 以重构您的组件,如图 36 所示。
图 36. 重构
- 多运行程序几次以检查活动状态表中的结果。不要忘记关闭事件 evOFF ,它允许停止包含转储命令的转变。
- 在 Rhapsody 中,选择 Tools > Test RealTime Results 以在 Rational Test RealTime 显示相应的报告,如图 37 所示。
图 37. 检查结果
(点击查看大图)
所学知识的总结
首先,为了安装 Rational Test RealTime integration for Rhapsody,您可以完成以下步骤:
- 在 Rhapsody 中创建 Rational Test RealTime 菜单
- 创建一个新的配置
- 更新编写批文件
接下来,您使用 Rhapsody with Microsoft Visual Studio V6 中的 Rational Test RealTime 的范例。您完成了这些任务:
- 编辑 Host_Coverage 配置
- 使用 Rational Test RealTime 工具
- 向模型添加 Rational Test RealTime 转储点
- 生成并构建代码
- 运行执行的程序
- 检查 Rational Test RealTime 结果
- 向 Rhapsody 框架添加工具
- 生成更多的运行时分析结果