主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用 SIL/PIL 验证早期版本生成的代码

若您在早期版本中为原子子系统生成代码并通过 SIL/PIL 仿真进行验证,则可重用该代码来验证模型在当前版本中是否仍能按预期运行。重用生成的代码可节省测试框架的生成时间,因为您无需重新生成代码。

注意

  • 您不能重用为整个模型或 Model 模块的测试框架生成的代码。

  • 您只能重用前八个版本生成的代码。尝试重用更早的版本生成的代码会导致错误。

  • 您必须拥有 Embedded Coder® 许可证才能重用早期版本生成的代码。

创建可重用的生成代码测试框架

要重用早期版本生成的代码,请创建用于 SIL 或 PIL 验证的测试框架:

  1. 在模型中右键点击您在早期版本中为其生成代码的原子子系统,然后选择测试框架 > Create for <subsystem>

  2. 在“创建测试框架”对话框中,为框架指定一个名称

  3. 高级属性选项卡中,将框架设置为 SIL 或 PIL 框架,用于验证现有的生成代码:

    1. 验证模式替换为软件在环(SIL)处理器在环(PIL)

    2. 选择使用现有的生成代码创建 SIL/PIL 模块

    3. 编译文件夹框中,输入包含早期版本生成的代码的文件夹的完整路径。例如,若您将系统目标文件配置为 ert.tlc,则文件夹名称将以 "_ert_rtw" 结尾。

  4. 点击确定以创建测试框架。

  5. 选择测试框架中退出子系统的信号。将鼠标悬停在省略号上以打开操作栏,然后选择记录所选信号

  6. 关闭框架。您不需要明确保存框架。

要以编程方式使用先前生成的通过 SIL/PIL 子系统验证的代码,请使用 sltest.harness.createsltest.harness.setExistingBuildFolder 属性来指定生成代码的位置。

创建普通仿真测试框架

为测试当前版本中子系统的行为,请创建用于普通仿真的测试框架:

  1. 在模型中右键点击您在早期版本中为其生成代码的原子子系统,然后选择测试框架 > Create for <subsystem>

  2. 在“创建测试框架”对话框中,为框架指定一个名称

  3. 点击确定以创建测试框架。

  4. 选择测试框架中退出子系统的信号。将鼠标悬停在省略号上以打开操作栏,然后选择记录所选信号

  5. 关闭框架。

创建等效性测试用例

为验证当前版本中的模型仍能按预期运行,请创建一个等效性测试,比较当前版本的普通仿真与早期版本的 SIL/PIL 模式仿真:

  1. 打开测试管理器。

    sltest.testmanager.view
  2. 点击新建 > 测试文件。将测试文件命名为 SIL reuse

  3. 删除 New Test Case 1

  4. 选中 New Test Suite 1 并点击新建 > 测试用例 > 等效性测试

  5. New Test Case 1 的名称更改为 SIL equivalence test case

  6. 仿真 1 部分,位于在测系统之下:

    1. 指定模型

    2. 测试框架 > 框架下,指定用于普通仿真的测试框架。

    3. 仿真设置和版本覆盖下,指定开始时间停止时间。将版本改为 Current

  7. 仿真 2 部分,位于在测系统之下:

    1. 指定模型

    2. 测试框架 > 框架下,指定使用生成的代码的测试框架。

    3. 仿真设置和版本覆盖下,指定开始时间停止时间。将版本改为 Current

  8. 对于两种仿真,在输入部分中,请指定您在上一版本中用于验证系统的输入参数。例如,如果您将输入保存到 MAT 文件中:

    1. 外部输入下,点击添加

    2. 在“添加输入”对话框中,指定文件的名称。

    3. 点击映射输入,然后点击添加

运行测试并分析结果

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

上图显示了两个测试框架的输出。下图显示了这些输出结果之间的差异。若差异为零,则两个结果图完全吻合,说明早期版本中验证的代码与当前版本生成的代码产出相同结果。

另请参阅

| | (Embedded Coder)

主题