使用 SIL/PIL 验证早期版本生成的代码
若您在早期版本中为原子子系统生成代码并通过 SIL/PIL 仿真进行验证,则可重用该代码来验证模型在当前版本中是否仍能按预期运行。重用生成的代码可节省测试框架的生成时间,因为您无需重新生成代码。
注意
您不能重用为整个模型或 Model 模块的测试框架生成的代码。
您只能重用前八个版本生成的代码。尝试重用更早的版本生成的代码会导致错误。
您必须拥有 Embedded Coder® 许可证才能重用早期版本生成的代码。
创建可重用的生成代码测试框架
要重用早期版本生成的代码,请创建用于 SIL 或 PIL 验证的测试框架:
在模型中右键点击您在早期版本中为其生成代码的原子子系统,然后选择测试框架 > Create for <subsystem>。
在“创建测试框架”对话框中,为框架指定一个名称。
在高级属性选项卡中,将框架设置为 SIL 或 PIL 框架,用于验证现有的生成代码:
将验证模式替换为软件在环(SIL) 或处理器在环(PIL)。
选择使用现有的生成代码创建 SIL/PIL 模块。
在编译文件夹框中,输入包含早期版本生成的代码的文件夹的完整路径。例如,若您将系统目标文件配置为
ert.tlc,则文件夹名称将以 "_ert_rtw" 结尾。
点击确定以创建测试框架。

选择测试框架中退出子系统的信号。将鼠标悬停在省略号上以打开操作栏,然后选择记录所选信号。
关闭框架。您不需要明确保存框架。
要以编程方式使用先前生成的通过 SIL/PIL 子系统验证的代码,请使用 sltest.harness.create 或 sltest.harness.set 的 ExistingBuildFolder 属性来指定生成代码的位置。
创建普通仿真测试框架
为测试当前版本中子系统的行为,请创建用于普通仿真的测试框架:
在模型中右键点击您在早期版本中为其生成代码的原子子系统,然后选择测试框架 > Create for <subsystem>。
在“创建测试框架”对话框中,为框架指定一个名称。
点击确定以创建测试框架。

选择测试框架中退出子系统的信号。将鼠标悬停在省略号上以打开操作栏,然后选择记录所选信号。
关闭框架。
创建等效性测试用例
为验证当前版本中的模型仍能按预期运行,请创建一个等效性测试,比较当前版本的普通仿真与早期版本的 SIL/PIL 模式仿真:
打开测试管理器。
sltest.testmanager.view
点击新建 > 测试文件。将测试文件命名为
SIL reuse。删除
New Test Case 1。选中
New Test Suite 1并点击新建 > 测试用例 > 等效性测试。将
New Test Case 1的名称更改为SIL equivalence test case。在仿真 1 部分,位于在测系统之下:
指定模型。
在测试框架 > 框架下,指定用于普通仿真的测试框架。
在仿真设置和版本覆盖下,指定开始时间和停止时间。将版本改为
Current。
在仿真 2 部分,位于在测系统之下:
指定模型。
在测试框架 > 框架下,指定使用生成的代码的测试框架。
在仿真设置和版本覆盖下,指定开始时间和停止时间。将版本改为
Current。
对于两种仿真,在输入部分中,请指定您在上一版本中用于验证系统的输入参数。例如,如果您将输入保存到 MAT 文件中:
在外部输入下,点击添加。
在“添加输入”对话框中,指定文件的名称。
点击映射输入,然后点击添加。

运行测试并分析结果
要验证结果是否与早期版本中相同代码生成的结果一致,请点击运行以运行等效性测试。要查看输出并分析测试结果,请在结果和工件窗格中展开等效性准则结果。

上图显示了两个测试框架的输出。下图显示了这些输出结果之间的差异。若差异为零,则两个结果图完全吻合,说明早期版本中验证的代码与当前版本生成的代码产出相同结果。
另请参阅
sltest.harness.create | sltest.harness.set | crossReleaseImport (Embedded Coder)