Other Parts Discussed in Thread: RM48L952, CCSTUDIO
“线程: 测试, CCStudio”中讨论的其它部件
您好,
使用 XDSPRO 捕获复杂项目的线路覆盖和功能覆盖报告。
1)我们能够在 for 循环完成后运行循环项目的 simle,以获取代码覆盖报告,附加的简单项目完成了执行,并在已知时间段后停止,并且没有 while 循环或复杂项目结构。
我们无法使用脚本创建以下内容:
清除 RM48L952上闪存的内容。
1)闪存/加载 具有多个循环等复杂项目结构的.out 文件执行时处理器可能停止,XDSPRO 必须在执行 RM48L952或停止等时连续收集代码覆盖范围。
2)在完成第一步后,XDSPRO 应 停止处理器和合并代码覆盖报告。
3)使用不同的操作条件设置加载项目
4)在完成步骤3后,XDSPRO 应 停止处理器和合并代码覆盖报告。
5)在循环测试条件下使用硬件加载项目
6)在完成步骤5后,XDSPRO 应 停止处理器和合并代码覆盖报告。
7)上述步骤的执行可能有多个循环不同的输入测试条件/代码设置等所有条件它应该 合并代码覆盖报告 并生成最终报告
8)由于需要从复杂项目中收集大量数据,XDSPRO 会在下一行停止并退出脚本,因此数据应拆分为小的512kb 块,并经常写入.csv 文件

脚本如下所示
importPackage(Packages.com.ti.debug.engine.scripting)
importPackage(Packages.com.ti.ccstudio.scripting.environment)
importPackage(Packages.com.ti.dvt.engine.scripting)
importPackage(Packages.java.lang)
importPackage(Packages.java.io)
importPackage(Packages.java.util)
/*
* This file contains an example for running Code Coverage Analysis on a C6670 board over XDSPRO
* The example will export processed data to CSV files locate in CWD (Current Working Directory).
*
* See /ccs_base/scripting/docs/DVTAnalyzerScripting.htm for complete details on
* Hardware Trace Analyzer scripting
*/
// ---------- Start up ----------
script = ScriptingEnvironment.instance();
script.setScriptTimeout(240000);
// Create a log file in the current directory to log script execution
script.traceBegin("scriptLog.xml", "DefaultStylesheet.xsl");
script.traceSetConsoleLevel(TraceLevel.INFO);
script.traceSetFileLevel(TraceLevel.INFO);
script.traceWrite("Starting Code Coverage");
// ---------- Set up debugger ----------
script.traceWrite("Launching debugger");
debugServer = script.getServer("DebugServer.1");
debugServer.setConfig("c:/ti/ccsv6/ccs_base/scripting/bin/RM48L952.ccxml");
dsR5 = debugServer.openSession("*", "*");
script.traceWrite("Connecting CPU");
dsR5.target.connect();
script.traceWrite("Loading program");
//dsR5.memory.loadProgram("Compiled/TESTXDSPRO.out");
// ---------- Create a DVT server ----------
dvtServer = script.getServer("DVTServer.1");
// ---------- Set up the analysis ----------
script.traceWrite("Setting up analysis session");
analysisSession = dvtServer.openAnalysisSession();
analysisConfig = analysisSession.loadAnalysis("Hardware Trace Analyzer/Code Coverage");
analysisConfig.setProperty("core", dsR5.getName());
analysisConfig.setProperty("transportType", "Pro Trace");
analysisConfig.setProperty("bufferSize", "512 kB");
analysisConfig.setProperty("Number of Pins", "8 Pin");
analysisConfig.run();
//---------- Run target for 2 secs ----------
script.traceWrite("Running target");
dsR5.target.halt();
dsR5.target.runAsynch();
Thread.sleep(20000);
dsR5.target.halt();
//dsR5.target.run();
// ---------- Wait until processing is done ----------
script.traceWrite("Processing");
analyzer = analysisConfig.findAnalyzerByName("Code Coverage");
analyzer.waitForEndOfData();
// ---------- Post analysis - export the data to a CSV file ----------
cwd = script.getCurrentDirectory();
script.traceWrite("Exporting results to " + cwd);
analyzer.exportDataToCSV("Line Coverage", cwd+"/"+"LineCoverageLive.csv", null);
analyzer.exportDataToCSV("Function Coverage", cwd+"/"+"FunctionCoverageLive.csv", null);
// ---------- shut down ----------
script.traceWrite("Shutting down");
analysisSession.endAnalysis(analysisConfig);
debugServer.stop();
dvtServer.stop();
script.traceEnd();
重要软件包(Packages.com.ti.debug.engine.scripting)
重要软件包(Packages.com.ti.ccstudio.scripting.environment)
重要软件包(Packages.com.ti.dvt.engine.scripting)
导入包(Packages.java.lang)
导入包(Packages.java.io)
导入包(Packages.java.util)
/*
*此文件包含在基于 XDSPRO 的 C6670板上运行代码覆盖率分析的示例
*该示例将处理的数据导出到 CWD (当前工作目录)中的 CSV 文件。
*
*有关的完整详细信息,请参阅/CS_base/scriptions/docs/DVTAnalyzerScripting.htm
*硬件跟踪分析器脚本
*
//---- 启动---
脚本= ScriptingEnvironment.instance();
script.setScriptTimeout(240000);
//在当前目录中创建日志文件以记录脚本执行
script.traceBegin("scriptLog.xml","DefaultStylesheet.xsl");
script.traceSetConsoleLevel (TraceLevel 信息);
script.traceSetFileLevel (TraceLevel 信息);
script.traceWrite (“起始代码覆盖范围”);
//---- 设置调试器------------------------
script.traceWrite (“启动调试器”);
debugServer = script.getServer("DebugServer.1");
debugServer.setConfig("c:/ti/ccsv6/ccs_base/scripting/bin/RM48L952.ccxml");
dsR5 = debugServer.openSession("*","*");
script.traceWrite (“正在连接 CPU”);
dsR5.target.connect();
script.traceWrite (“加载程序”);
//dsR5.memory.loadProgram (“编译的/TESTXDSPRO.out”);
//---- 创建 DVT 服务器------------------------
dvtServer = script.getServer("DVTServer.1");
//---- 设置分析-----
script.traceWrite (“设置分析会话”);
AnalysisSession = dvtServer.openAnalysisSession();
AnalysisConfig = analysisSession.loadAnalysis (“硬件跟踪分析器/代码覆盖范围”);
analysisConfig.setProperty("core",dsR5.getName();
analysisConfig.setProperty("transportType","Pro Trace");
analysisConfig.setProperty("bufferSize",“512 KB”);
analysisConfig.setProperty("Number of Pins,"8 Pins");
analysisConfig.run();
//--- 运行目标2秒-----
script.traceWrite (“运行目标”);
dsR5.target.halt ();
dsR5.target.runAsynch();
线程休眠(20000);
dsR5.target.halt ();
//dsR5.target.run();
//---- 等待处理完成-->
script.traceWrite (“处理”);
Analyzer = analysisConfig.findAnalyzerByName("Code Coverage");
Analyzer.waitForEndOfData();
//---- 后期分析-将数据导出到 CSV 文件中-----
CWD = script.getCurrentDirectory();
script.traceWrite (“将结果导出到”+ cwd);
Analyzer.exportDataToCSV (“线路覆盖范围”,cwd+"/"+"LineCoverageLive.csv),空);
Analyzer.exportDataToCSV (“函数覆盖范围”,cwd+"/"+"功能选项 CoverageLive.csv,空);
//---- 关闭-----
script.traceWrite (“关闭”);
AnalysisSession.endAnalysis(analysisConfig);
debugServer.stop();
dvtServer.stop();
script.traceEnd();