主要内容

Polyspace对生成代码的分析嵌入式编码器

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

该主题使用嵌入式编码器进行代码生成。要分析目标链接生成的代码,请参见对使用TargetLink生成的代码运行Polyspace分析

有关具有特定模型的教程,请参见在Simulink模型生成的代码上运行多源空间分析金宝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代码验证器。在Polyspace标签:

  1. 选择要运行的产品:错误查找器或者代码鄙视

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

    • 设置:启用Misra检查®除了项目配置中指定的默认检查外,编码规则。默认错误查找器检查查找错误。默认的代码供您检查查找运行时错误。

    • 输入,,,,可调参数输出:限制输入,可调参数或输出,以进行更精确的代码供体分析。

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

    • 验证后自动打开结果

    有关要设置的选项的完整列表,请参阅simulink中的错误查找器分析金宝app

分析代码

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

使用嵌入式编码器时,单击时,PolySpace检查生成的代码运行分析。如果没有生成的代码或自上次Polyspace分析以来模型已更改,则PolySpace首先启动代码生成过程,然后开始分析。

如果另一个模型中引用了当前模型,并且您想在引用该模型的上下文中验证生成的代码,而不是代码作为顶级模型生成, 利用代码作为模型参考。在后一种情况下,如果没有生成的代码,PolySpace不会自动启动代码生成。分析时代码作为模型参考,在运行Polyspace分析之前生成代码。

您可以在MATLAB命令窗口中关注分析的进度。

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

如果您关闭了结果并希望以后打开它们,请在Polyspace选项卡,选择分析结果。要在上次运行之前打开结果,请选择打开早期结果并导航到包含先前结果的文件夹。

审查分析结果

审查代码的结果

结果出现在Polyspace用户界面上结果列表窗格。单击每个结果以查看源代码资源窗格以及有关结果细节窗格。也可以看看:

从代码到模型导航

代码注释中的链接显示了生成后续代码行的块。要查看模型中的块,请单击链接中的块名。如果您遇到问题,请参阅将导航从代码到模型进行故障排除

另外,您可以右键单击一个变量名称,然后选择转到模型。此选项并不适用于所有变量。只有一个源代码变量的子集可以直接追溯到simulink块。金宝app这转到模型该变量可用于选项。有关更多详细信息,可以将生成代码中的哪些变量追溯到Simulink块,请参见金宝app在生成的代码金宝app中跟踪模型元素(嵌入式编码器)

解决问题

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

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

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

  • 生成的代码可能仅在一定范围的输入中没有特定的运行时错误。要确定此无错误范围,您可以为Inport Block信号指定最小值和最大值。Polyspace分析使用此约束范围。看与信号范围合作(金宝appSimulink)

  • 状态流的某些过渡®图表可能无法到达。

如果将手写的C/C ++代码包括在S功能块中,则PolySpace分析可以揭示手写和生成的代码之间可能的集成问题。您还可以隔离分析手写代码。看在S功能代码上运行Polyspace分析

注释块以证明问题合理

您可能需要在不修改代码或模型的情况下证明一些polyspace结果是合理的。注释Simulin金宝appk从Polyspace用户界面或Simulink编辑器中块。看通过注释simulink块来解决polyspace结果金宝app

相关话题