主要内容

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

如果你从模型生成代码万博1manbetx®通过使用嵌入式编码模型®或TargetLink®生成的代码,您可以分析与Polyspace bug或运行时错误®在仿真软件环境。万博1manbetx你不需要手动设置一个Polyspace项目。

这一主题为代码生成使用嵌入式编码器。TargetLink-generated分析代码,请参阅与TargetLink Polyspace分析运行生成的代码

一个教程与一个特定的模型,看到从仿真软件模型运行Polyspace分析代码生成万博1manbetx

先决条件

从仿真软件运行Polyspace之前,你必须联系Polysp万博1manbetxace和MATLAB®安装。看到用MATLAB和Simulink Polyspace集成万博1manbetx

生成和分析代码

配置代码生成和生成代码

配置代码生成和从模式生成代码,做下列之一:

  • 应用程序选项卡上,选择嵌入式编码器。然后,在C代码选项卡上,选择快速启动。按照屏幕上的指令。

  • C代码选项卡上,单击设置通过仿真软件配置参数和配置代码生成。万博1manbetx主要的参数设置:

    • 类型(万博1manbetx模型):选择固定步

    • 解算器(万博1manbetx模型):选择汽车(自动解算器选择)离散(没有连续状态)

    • 系统目标文件(万博1manbetx仿真软件编码器):输入ert.tlcautosar.tlc。如果你获得目标文件ert.tlc,您还可以指定它们。

    • Code-to-model(嵌入式编码):选择这个选项来启用的链接代码模型。

    参数集的完整列表,请参阅推荐模型配置参数Polyspace分析

    另外,运行代码生成与客观的顾问Polyspace看看所需的参数已经设置。配置模型,通过使用代码生成目标代码生成的顾问(嵌入式编码)

    从模型生成代码,C代码选项卡上,选择生成代码。您可以按照进度诊断代码生成的查看器。

配置代码分析

应用程序选项卡上,选择Polyspace代码验证器。在Polyspace标签:

  1. 选择产品运行:错误发现者代码验证

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

    • 设置从MISRA:使检查®编码规则除了在项目配置中指定默认的检查。默认的错误寻找Bug仪检查。默认的代码验证检查寻找运行时错误。

    • 输入,可调参数输出:可调参数,限制输入或输出更精确的代码验证分析。

    • 输出文件夹:指定一个专门的文件夹为结果。默认的分析将结果保存在一个文件夹中results_modelName在当前工作目录中。

    • 打开后自动验证结果

    选项的完整列表,请参阅Polyspace分析仿真软件万博1manbetx

分析代码

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

当使用嵌入式编码器,Polyspace检查生成的代码当你点击运行分析。如果没有生成的代码存在,Polyspace首先启动代码生成过程,然后开始分析。

如果当前模型中引用另一个模型,你想验证生成的代码的上下文模型的引用,而不是代码生成模型,使用代码生成模型参考。在后一种情况下,Polyspace不会自动启动代码生成如果没有生成的代码。在分析代码生成模型参考在运行Polyspace之前生成代码分析。

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

结果自动打开,除非显式禁用。默认情况下,结果保存在一个文件夹results_ModelName在当前文件夹。每一个新的运行覆盖以前的结果。您可以更改默认的文件夹或将结果保存到一个仿真软件项目。万博1manbetx这些变化,在Polyspace选项卡上,选择设置

如果你有关闭的结果,想打开后,在Polyspace选项卡上,选择分析结果。打开之前最后的运行结果,选择开放前的结果并导航到这个文件夹包含了前面的结果。

回顾分析结果

审查结果代码

结果出现在Polyspace用户界面上结果列表窗格。点击每个结果查看源代码面板和细节结果细节窗格。参见:

从代码导航模型

链接代码注释显示生成后续行代码块。看到块模型中,单击链接块的名字。如果你遇到问题,明白了从代码模型解决导航

或者,您可以右键单击一个变量名和选择去模型。这对所有变量选项不可用。只有一个子集的源代码变量可以直接追溯到一块模型。万博1manbetx的去模型这样一个变量选项是可用的。为更多的细节在生成的代码的变量可以追溯到模型块,明白了万博1manbetx在生成的代码万博1manbetx跟踪仿真软件模型元素(嵌入式编码)

解决问题

调查的问题是否在你的代码模型中的设计缺陷相关。

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

  • 生成的代码可能没有特定的运行时错误只有在一定范围内的一块参数。为了解决这个问题,你可以改变块的存储类参数或使用校准数据分析通过使用配置参数可调参数

  • 生成的代码可能没有特定的运行时错误只有在一定范围的输入。确定这个错误范围内,您可以指定一个最小值和最大值的轮廓尺寸块信号。Polyspace分析使用该限制范围。看到使用信号范围块(万博1manbetx模型)

  • 某些转换Stateflow®图表可以遥不可及的。

如果你包括手写的C / c++代码的功能块,Polyspace分析可以揭示可能的手写和生成的代码之间的集成问题。你也可以孤立地分析手写代码。看到运行Polyspace分析功能的代码

注释块来证明问题

如果你不想改变模型在回答Polyspace结果,注释相关的块。块注释后,代码块的操作生成的显示结果来填充你的评论。如果您标注了一个子系统块或一块,导致一个函数调用,代码操作产生的块没有显示您的评论分析结果。如果一个查找表块,使存根查找表而不是使用注释。看到存根查找表

在生成的代码通过使用嵌入式程序员,有偏离MISRA - C®:2012。看到偏差原因MISRA - C: 2012合规(嵌入式编码)。证明这些已知问题的注释块。

生成的代码注释在仿真软件模块或万博1manbetx不考虑历史的分析。如果你更新你的模型,Polyspace结果不可能改变而注释。更新过时的模型可以使现有的注释。检查你的注释,当你更新你的模型或生成的代码。

注释块通过Polyspace用户界面

如果你使用嵌入式编码器来生成代码,你可以直接通过Polyspace注释仿真软件模块的用户界面。万博1manbetx定位的问题你想注释,然后通过添加输入审核信息严重程度,状态和可选的笔记结果细节窗格。例如,在Polyspace用户界面:

  • 设置状态的问题调查

  • 设置评论对于这个问题可能会影响“模块”

在源代码中,右键单击变量显示问题,并从上下文菜单中,选择注释块

审查信息携带到仿真软件编辑块注释的注释块突出显示。万博1manbetx

你可以标注模型块很多次了。万博1manbetx随后在一块注释附加到之前的注释。不能在模型编辑器中看到这些注释。万博1manbetx当你分析生成的代码通过使用Polyspace,这些注释显示为审核中的信息结果细节窗格Polyspace的用户界面。

Polyspace使用用户提供的信息在仿真软件预填充的注释。万博1manbetx评论中设置Polyspace用户界面出现在双引号内评论仿真软件。万博1manbetx如果你有双引号Polyspace评论的用户界面,这些都是在模型取而代之的是单引号。万博1manbetx

的选项注释块用于代码元素,可以追溯到一个模型块。万博1manbetx更多信息见在生成的代码万博1manbetx跟踪仿真软件模型元素(嵌入式编码)

注释块万博1manbetx编辑器

注释块在模型编辑器中,选择块和万博1manbetxPolyspace选项卡上,选择添加注释。在Polyspace注释亮点:

  • 选择你想Polyspace结果的类型注释从下拉菜单注释类型

  • 如果你想标注相同类型的多个结果,输入一个逗号分隔的列表结果缩略词在文本框中。看到的:

  • 如果你想标注只有一个结果,选择只有1检查。文本框转换为下拉菜单。选择你想要的结果从这个下拉菜单注释。

  • 在相应的文本框中,输入状态,严重程度和评论,你想分配结果。

Polyspace注释窗口中,您可以注释一个单一类型的Polyspace结果。注释多种类型的结果。打开Polyspace注释窗口多次。每一次,添加一个注释对应一种Polyspace结果。不同注释附加到对方。不能在模型编辑器中看到这些注释。万博1manbetx当你分析生成的代码通过使用Polyspace,这些注释显示为审核中的信息结果细节窗格Polyspace的用户界面。

有时操作生成的代码导致橙色检查代码验证。假设一个操作可能溢出。生成的代码防止饱和溢出遵循操作。Polyspace仍然作为橙色旗帜可能溢出检查。通过代码注释来证明这些检查,指定配置参数操作员注释(嵌入式编码)

当你复制一个注释块,然后使用它在一个不同的模型或在一个不同的位置在同一模型中,更改的上下文可以呈现注释不正确的。

  • Polyspace不允许注释块库和原子内部子系统因为这些块是在许多不同的上下文中重用。例如,你不能注释块内库块和图书馆的所有实例证明结果块中。

  • 万博1manbetx仿真软件不保留Polyspace注释块复制到不同的模型或在同一个模型在不同的位置。

相关的话题