跑步波尔盖斯用来分析代码嵌入式编码器

如果从Simulink生成代码金宝app®模型使用嵌入式编码器®或目标联系®,您可以使用PolySpace分析生成的错误或运行时错误的生成代码®在Simulink环境中。金宝app您不必手动设置PolySpace项目。

本主题使用嵌入式编码器进行代码生成。用于分析TargetLink生成的代码,请参阅使用TargetLink生成的代码运行PolySpace分析

对于具有特定模型的教程,请参阅从Simulink模型生成的代码运行PolySpace分析金宝app

先决条件

在从Simulink运行PolySpace之前,必须将您的P金宝appolySpace和Matlab链接®安装。看将PolySpace与Matlab和Simulink集成金宝app

生成和分析代码

配置代码生成并生成代码

要配置代码生成并从模型生成代码,请执行其中一个

  • 在这一点应用选项卡,选择嵌入式编码器。然后,在C代码选项卡,选择快速开始。按照屏幕上的说明进行操作。

  • 在这一点C代码选项卡,单击设置通过Simulink配置参数配置代码生成。金宝app设置的主要参数是:

    • 类型(金宝appSimulink):选择固定步骤

    • 求解器(金宝appSimulink):选择自动(自动求解​​器选择)或者离散(没有连续的状态)

    • 系统目标文件(金宝appSimulink编码器):进入ert.tlc.或者autosar.tlc.。如果您从中派生目标文件ert.tlc.,您也可以指定它们。

    • 代码到模型(嵌入式编码器):选择此选项可从代码到模型启用链接。

    有关设置的完整参数列表,请参阅推荐的PolySpace分析模型配置参数

    或者,使用目标运行代码生成顾问波尔盖斯并查看是否已设置所需的参数。看使用代码生成顾问配置代码生成目标的模型(嵌入式编码器)。

    从模型生成代码,在C代码选项卡,选择生成代码。您可以遵循诊断查看器中的代码生成的进度。

配置代码分析

在这一点应用选项卡,选择PolySpace代码验证者。在这一点波尔盖斯标签:

  1. 选择要运行的产品:臭虫查找器或者代码箴言

  2. 选择设置。如果需要,请更改这些选项的默认值。

    • 设置从:启用米苏的检查®除了项目配置中指定的默认检查之外,还原规则。默认错误查找器检查查找错误。默认代码抄本检查查找运行时错误。

    • 输入可调参数输出:为更精确的代码先驱分析约束输入,可调谐参数或输出。

    • 导出目录:为结果指定专用文件夹。默认分析将结果保存在文件夹中结果_型号名称在当前的工作文件夹中。

    • 验证后自动打开结果

    有关设置的完整选项列表,请参阅Simulink中的PolySpace分析金宝app

分析代码

要分析模型生成的代码,请单击画布上的任意位置。这分析代码字段显示模型名称。选择运行分析

如果当前模型在另一个模型中引用,并且您希望在引用模型的上下文中验证生成的代码,而不是作为顶级模型生成的代码, 用代码生成为模型引用

您可以遵循MATLAB命令窗口中分析的进度。

除非明确禁用,否则结果自动打开。默认情况下,结果将保存在文件夹中结果_型号名称在当前文件夹中。每个新运行覆盖以前的结果。您可以更改默认文件夹或将结果保存到Simulink项目。金宝app使这些变化发生在波尔盖斯选项卡,选择设置

如果您已关闭结果并希望在以后打开它们波尔盖斯选项卡,选择分析结果。要在上次运行之前打开结果,请选择打开前面的结果并导航到包含以前结果的文件夹。

审查分析结果

审核结果代码

结果显示在PolySpace用户界面中结果清单窗格。单击每个结果以查看源代码来源窗格和细节结果细节窗格。也可以看看:

从代码导航到模型

代码注释中的链接显示生成后续代码行的块。要在模型中看到块,请单击链接中的块名称。如果您遇到问题,请参阅从代码到型号的导航问题

或者,您可以右键单击变量名称并选择去模特。所有变量不可用此选项。

修复问题

调查代码中的问题是否与模型中的设计缺陷有关。

模型中的设计缺陷可能导致生成的代码中的问题。例如:

  • 生成的代码可能仅在块参数的某个范围内没有特定的运行时误差。要解决此问题,您可以使用配置参数更改该块参数的存储类或使用校准数据进行分析可调参数

  • 生成的代码可能仅在某种范围内没有特定的运行时误差。要确定此无错误范围,您可以为Inport块信号指定最小值和最大值。PolySpace分析使用此约束范围。看使用块中的信号范围(金宝appSimulink)。

  • 状态流程中的某些转换®图表可以无法访问。

如果在S函数块中包含手写C / C ++代码,则PolySpace分析可以揭示手写和生成代码之间的可能集成问题。您还可以分析单独的手写代码。看在S函数代码运行PolySpace分析

向块提供证明问题的块

如果您不想响应PolySpace结果进行更改,请注释相关块。在注释块后,块生成的代码操作显示与您的评论有关的结果。如果向子系统块或导致函数调用的块注释,则从块生成的代码操作不会在分析结果中显示您的注释。如果块是查找表,请启用存根查找表而不是使用注释。

要注释一个块,请选择块和块波尔盖斯选项卡,选择添加注释。输入以下内容:

有时已知生成代码中的操作在代码先驱中导致橙色检查。假设已知一个可能溢出的操作。通过饱和度操作,生成的代码通过操作来保护溢出。PolySpace仍然将可能的溢出标记为橙色检查。要通过代码注释自动证明这些检查,请指定配置参数操作员注释(嵌入式编码器)。

当您在不同的位置或模型中重复使用带注释的块时,更改的上下文可以呈现注释不正确。避免不正确的注释:

  • PolySpace不允许在库内的块中的注释和非原子子系统中的块,因为这些块在许多不同的上下文中重复使用。您无法在库中注释一个块,并在块的所有实例上证明结果。

  • 金宝appSimulink不会在复制到不同位置或模型的块中保留波度注释。

相关话题