开发环境 #
如下信息拷贝自客户所给开发环境安装后的帮助菜单:
CS+ for CC V8.04.00 [09 Jun 2020] RH850 Build tool CC-RH Plug-in V8.02.00.00 [25 Mar 2019] Build tool plug-in to use CC-RH compiler for RH850. CC-RH V2.02.00 Build tool. BuildToolCCRHCore V8.04.00.01 [08 May 2020] RL78 Build tool CC-RL Plug-in V8.02.00.00 [25 Mar 2019] Build tool plug-in to use CC-RL compiler for RL78. RX Build tool CC-RX Plug-in V8.02.00.00 [25 Mar 2019] Build tool plug-in to use CC-RX compiler for RX. RH850 Build tool GHS CCRH850 Plug-in V1.04.00.01 [12 Oct 2018] Build tool plug-in to use GHS CCRH850 compiler for RH850. Debugger Collection Plug-in V8.04.00.03 [28 May 2020] Debug tool plug-in to use RH850, RX, RL78 Emulator/Simulator.
构建和生成BDF文件 #
界面构建:CS+本身IDE环境提供构建,可以通过菜单上的Build找到“Rebuild Project”执行项目构建。如下图所示
上述图中的“Build Option List”可以在控制台显示具体的文件构建信息,如使用到的编译器命令和开关选项。
如果想要了解该项目的具体编译器选项,链接器选项等配置信息,可以点击项目结构下的“Build Tool”,如下图示:
命令行方式构建:根据Renesas官方手册材料,CS+的命令行方式构建需要用到安装目录下的"CubeSuite+.exe"。
首先设置相关环境变量,如下所示通过set命令设置临时path,在其中包含编译器路径,cpptesttrace命令路径和CubSuite+.exe路径。
set path=%path%;C:\Program Files (x86)\Renesas Electronics\CS+\CC;C:\PSMS\InstallPackages\ParasoftProducts\parasoft_cpptest_professional-2023.1.1-win32.x86_64\cpptest\bin;C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RH\V2.02.00\Bin
执行命令重新构建并生成bdf文件到指定位置。
cpptesttrace --cpptesttraceTraceCommand="ccrh.exe|rlink.exe" --cpptesttraceOutputFile="C:\PSMS\PrjBDF\RH850_tutorial.bdf" --cpptesttraceProjectName=RH850_tutorial CubeSuite+.exe /bcb DefaultBuild "C:\PSMS\CSRH850Prj\RH850_F1L_Tutorial_Analysis\RH850_F1L_Tutorial_Analysis.mtpj"
注意:如上所示的项目名称,bdf文件名称均为示例。
导入BDF文件创建项目 #
在刚才的同一个CMD窗口下,输入如下参考命令启动C++test(这主要是为了保障C++test能正确查找到编译器命令)
"C:\PSMS\InstallPackages\ParasoftProducts\parasoft_cpptest_professional-2023.1.1-win32.x86_64\cpptest\cpptest.exe" -data "C:\PSMS\cpptest_workspace"
注意:上述的cpptest.exe路径和工作空间位置为参考路径,请根据实际情况调整。
通过BDF文件方式导入创建项目
注意:可以将编译器暂时设置为如上图所示的编译器种类,后续需要考虑定制编译器。
问题:如果只是简单设置为上述的内建编译器,会报告如下几个常见错误:
- “-include”参数不识别
- 无法正常完成静态分析 -- 根本没有生成预处理文件
自定义编译器 #
由于默认情况下,针对RH850没有内建的可支持编译器,需要考虑自定义编译器
在编译器模版中选择renrx_2_5作为模板,并注意将自定义编译器的配置路径拷贝粘贴到编辑器中备用。
- 修改自定义编译器下的配置文件c.psrc
修改预处理命令为正确的命令,搜索找到edgtk.preprocessorExecutable,将后面的ccrx命令修改为正确的ccrh。如下所示:
edgtk.preprocessorExecutable ccrh
- 修改自定义编译器下的配置文件c.psrc
修改之前报错的选项-include为正确的头文件包含选项,如下所示:将原来的1417行的include参数注释掉,修改为正确的头文件包含选项“I”。
#edgtk.optionConfig name=include prefix=- separators="=" params=1 tags=preprocessor edgtk.optionConfig name=I prefix=- params=1 tags=preprocessor
修改预处理命令行参数,注释掉原来的预处理命令行并修改为如下所示命令:
#edgtk.preprocessorCommand {exe} {opts} -output=prep {in} edgtk.preprocessorCommand {exe} {opts} -Xpreprocess=comment,line -P -Xcommon=rh850 {in}
注:预处理命令的正确使用关键在于查看CS+安装目录下的编译器手册,如下位置所示:
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RH\V2.02.00\Help\Compiler-CCRH.chm
自定义编译器配置参见如下:
1701740895-ghsv850_2017_5_ccrh
执行静态分析配置“Recommended Rules” #
修改完成后回到C++test中,选择项目执行静态分析"Recommended Rules"验证结果。