matlab求覆盖率程序,使用第三方工具收集代码覆盖率指标
初始设置
确保模型是新打开的。
model='rtwdemo_sil_topmodel';
close_system(model,0)
open_system(model)
删除现有编译文件夹。
buildFolder=RTW.getBuildDir(model);
if exist(buildFolder.BuildDirectory,'dir')
rmdir(buildFolder.BuildDirectory,'s');
end
配置模型覆盖率报告的生成设置。
set_param(model, 'RecordCoverage','on')
clear covCumulativeData
设置激励数据。
T=0.1; % sample time
[ticks_to_count, reset, counter_mode, count_enable, ...
counter_mode_values_run1, counter_mode_values_run2, ...
count_enable_values_run1, count_enable_values_run2] = ...
rtwdemo_sil_topmodel_data(T);
在 Normal 模式下运行仿真
该模型配置为收集模型覆盖率指标。仿真完成后,将打开模型覆盖率报告。使用覆盖率显示窗口从模型中的模块导航到覆盖率报告的相应部分。
counter_mode.signals.values = counter_mode_values_run1;
count_enable.signals.values = count_enable_values_run1;
set_param(model,'SimulationMode','normal');
设置仿真数据检查器以交互式查看和比较仿真结果。
Simulink.sdi.view;
Simulink.sdi.clear;
运行仿真。
simout_normal_run1 = sim(model, 'ReturnWorkspaceOutputs', 'on');
捕获结果。
Simulink.sdi.createRun('Run 1 (normal mode)', 'namevalue',...
{'simout_normal_run1'}, {simout_normal_run1});
在 Normal 模式下运行第二次仿真
对于第一次仿真,报告显示实现的覆盖率小于 100%。使用不同输入信号运行第二次仿真,将 MC/DC 覆盖率水平提高到 100%。请注意,模型覆盖率报告配置为显示两个仿真运行的累积覆盖率。
counter_mode.signals.values = counter_mode_values_run2;
count_enable.signals.values = count_enable_values_run2;
set_param(model,'SimulationMode','normal');
simout_normal_run2 = sim(model, 'ReturnWorkspaceOutputs', 'on');
Simulink.sdi.createRun('Run 2 (normal mode)', 'namevalue',...
{'simout_normal_run2'}, {simout_normal_run2});
配置模型以测量代码覆盖率
在运行 SIL 仿真之前,请检查第三方工具的可用性,并配置模型以收集代码覆盖率指标。如果第三方工具不可用,则模型将使用 Simulink® Verification and Validation™。
covToolPath = '';
ldraPath = coder.coverage.LDRA.getPath;
bullseyePath = coder.coverage.BullseyeCoverage.getPath;
coverageSettings = get_param(model,'CodeCoverageSettings');
coverageSettings.TopModelCoverage='on';
if ~isempty(ldraPath)
coverageSettings.CoverageTool='LDRA Testbed';
elseif ~isempty(bullseyePath)
coverageSettings.CoverageTool='BullseyeCoverage';
else
coverageSettings.CoverageTool='None';
end
set_param(model,'CodeCoverageSettings',coverageSettings);
在 SIL 模式下运行仿真
Normal 模式仿真得出了模型的覆盖率指标。使用 SIL 仿真,您可以对生成的代码应用相同的输入激励信号并测量代码覆盖率。
在 SIL 模式下运行第一个仿真。
counter_mode.signals.values = counter_mode_values_run1;
count_enable.signals.values = count_enable_values_run1;
set_param(model,'SimulationMode','software-in-the-loop');
set_param(model,'CodeExecutionProfiling','off');
set_param(model,'CodeProfilingInstrumentation','off');
simout_sil_run1 = sim(model, 'ReturnWorkspaceOutputs', 'on');
Simulink.sdi.createRun('Run 1 (SIL mode)', 'namevalue',...
{'simout_sil_run1'}, {simout_sil_run1});
### Starting build procedure for: rtwdemo_sil_topmodel
### Generated code for 'rtwdemo_sil_topmodel' is up to date because no structural, parameter or code replacement library changes were found.
### Successful completion of build procedure for: rtwdemo_sil_topmodel
Build Summary
Top model targets built:
Model Action Rebuild Reason
==============================================================================
rtwdemo_sil_topmodel Code compiled Compilation artifacts were out of date.
1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 21.252s
### Preparing to start SIL simulation ...
Building with 'Microsoft Visual C++ 2017 (C)'.
MEX completed successfully.
### Updating code generation report with SIL files ...
### Starting SIL simulation for component: rtwdemo_sil_topmodel
### Stopping SIL simulation for component: rtwdemo_sil_topmodel
### Completed code coverage analysis
在 SIL 模式下运行第二个仿真。
counter_mode.signals.values = counter_mode_values_run2;
count_enable.signals.values = count_enable_values_run2;
set_param(model,'SimulationMode','software-in-the-loop');
set_param(model,'CodeExecutionProfiling','off');
set_param(model,'CodeProfilingInstrumentation','off');
simout_sil_run2 = sim(model, 'ReturnWorkspaceOutputs', 'on');
Simulink.sdi.createRun('Run 2 (SIL mode)', 'namevalue',...
{'simout_sil_run2'}, {simout_sil_run2});
### Starting build procedure for: rtwdemo_sil_topmodel
### Generated code for 'rtwdemo_sil_topmodel' is up to date because no structural, parameter or code replacement library changes were found.
### Successful completion of build procedure for: rtwdemo_sil_topmodel
Build Summary
Top model targets built:
Model Action Rebuild Reason
==============================================================================
rtwdemo_sil_topmodel Code compiled Compilation artifacts were out of date.
1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 12.723s
### Preparing to start SIL simulation ...
### Starting SIL simulation for component: rtwdemo_sil_topmodel
### Stopping SIL simulation for component: rtwdemo_sil_topmodel
### Completed code coverage analysis
仿真完成后,点击命令行窗口中的链接以打开代码覆盖率报告,并查看累积代码覆盖率结果。只有安装了第三方工具,该链接才可用。
使用代码覆盖率报告中的超链接可以转到模块图中的相应位置。然后,通过使用覆盖率显示窗口,您可以打开模型覆盖率报告的相应部分。比较模型覆盖率和代码覆盖率结果。
仿真数据检查器会自动打开,从而允许以交互方式查看和分析结果。使用 Compare 和 Inspect 窗格确认 SIL 和 Normal 模式记录的信号在两次运行中是相同的。
结语
在此示例中,您执行了下列操作:
在 Normal 模式仿真期间收集模型覆盖率指标。
在 SIL 仿真期间收集代码覆盖率指标。
在代码覆盖率和模型覆盖率报告之间进行导航。
交叉检查两个报告中的各项指标。
matlab求覆盖率程序,使用第三方工具收集代码覆盖率指标相关推荐
- matlab求偏微分方程程序,用MATLAB解偏微分方程.pdf
用MATLAB解偏微分方程.pdf 年 月 阴 山 学 刊 第 卷 第 期 丫叫 加 用 解偏微分方程 田 兵 包头师范学院 学报编辑部 , 内蒙古 包头 摘 要 讨论 了以 中偏徽分方程工具箱的用法 ...
- matlab求根的原程序,MATLAB求根程序求帮助
我有一个函数g=m*(m1/m)*(m2/m)*(r^2)*rm*Wc1*cos(2*u),我需要一个程序求这个函数在在(-2*pi,2*pi)上所有的根. 其中u是自变量,其他所有参数都是已知.已知 ...
- matlab求直线斜率程序,使用matlab实现批量线性回归并出图(需要得到每条拟合直线斜率、截距以及R)...
使用matlab实现批量线性回归并出图(需要得到每条拟合直线斜率.截距以及R) 我只会使用origin对多组数据进行线性回归,不会用matlab.现在数据比较多,大约100多组,我想请大家帮忙,能不能 ...
- 程序员好用的工具收集系列
程序员好用的工具收集系列 文章目录 程序员好用的工具收集系列 第一节 Windows 软件 1. 软件推荐 第二节 VScode 插件 1. 软件推荐 第三节 Chrome插件 1. 软件推荐 第四节 ...
- matlab计算原点矩,关于用matlab求样本均值方差以及k阶原点矩的matlab程序
关于用matlab求样本均值方差以及k阶原点矩的matlab 程序 关于用matlab求样本均值和方差以及matlab程 序 1n1. 样本均值,公式xX,(其中X为样本).程序如下: ,i,1in ...
- 哈密顿圈 MATLAB程序,matlab求最佳哈密顿圈遇到错误
问题描述: matlab求最佳哈密顿圈遇到错误 求最佳哈密顿圈遇到错误 程序如下 %用矩阵翻转方法来实现二边逐次修**过程,求最佳哈密尔顿圈(H圈) clc clear load('zd.mat'); ...
- matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...
导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...
- python虚假评论识别程序_还在刷虚假评论?小心了,可以检测虚假评论的第三方工具来了...
逛亚马逊,经常能看到些不可思议的好评,那这些评论有可能都是真的吗? 雨果网从外媒近日的报道中了解到,产品评论是消费者网购是一个重要参考指标.比如亚马逊的产品范围这么广,借助评论消费者就能进一步了解产品 ...
- Java第三方工具库/包汇总
一.科学计算或矩阵运算库 科学计算包: JMathLib是一个用于计算复杂数学表达式并能够图形化显示计算结果的Java开源类库.它是Matlab.Octave.FreeMat.Scilab的一个克隆, ...
最新文章
- css3之border-radius理解
- 好的产品经理是怎样炼成的?
- android toast有焦点,android – 如何在显示Toast后进行edittext自动对焦?
- win10录屏工具_win10怎么录屏?这才是最长情陪伴你的录屏工具
- python中提取几列_自己录制的公开课视频中提取字幕(python+opencv+Tesseract-OCR)
- Ubuntu下添加打印机---之寻找设备lpinfo
- 【图像隐写】基于matlab GUI DCT数字水印嵌入+提取【含Matlab源码 1671期】
- PS制作加载GIF图片教程
- centos防火墙的关闭,硬盘挂载,yum配置,创建实验快照
- 自己动手编写CSDN博客备份工具-blogspider之源码分析(1)
- 《云计算》shell高级编程-正则表达式
- python里面的报错语句翻译_翻译《Writing Idiomatic Python》(二):函数、异常
- java仿QQ聊天室群聊(快速写一个简易QQ)
- sql中以sa命名的用户名无法使用,错误码1845
- [转帖]惠普笔记本Win7激活方法
- github pages 一些需要注意的问题
- 用计算机despair,despair造句
- 非常好用的短视频解析除水印软件
- esxi里挂载新磁盘_esxi挂载usb移动硬盘
- Linux 系统 top 命令详解