如果从Simulink生成代码金宝app®利用嵌入式编码器建立模型®或目标联系®,您可以使用Polyspace分析生成的代码中的bug或运行时错误®在Simulink环境中。金宝app您不必手动设置PolySpace项目。
本主题使用嵌入式编码器进行代码生成。用于分析TargetLink生成的代码,请参阅对使用TargetLink生成的代码运行多空间分析.
对于具有特定模型的教程,请参阅对Simulink模型生成的代码运行多空间分析金宝app.
在从Simulink运行PolySpace之前,必须将您的P金宝appolySpace和Matlab链接®安装。看将PolySpace与Matlab和Simulink集成金宝app.
要配置代码生成并从模型生成代码,请执行下列情况之一:
上应用程序选项卡,选择嵌入式编码器.然后,在C代码选项卡,选择快速开始. 按照屏幕上的说明操作。
上C代码选项卡,单击设置通过Simulink配置参数配置代码生成。金宝app设置的主要参数是:
有关设置的完整参数列表,请参阅推荐的PolySpace分析模型配置参数.
或者,使用目标运行代码生成顾问多空间并查看是否已设置所需的参数。看使用代码生成顾问为代码生成目标配置模型(嵌入式编码器).
要从模型生成代码,请在C代码选项卡,选择生成代码.您可以遵循诊断查看器中的代码生成的进度。
上应用程序选项卡,选择多空间码校验器.上多空间标签:
要分析模型生成的代码,请单击画布上的任意位置。这分析代码字段显示模型名称。挑选运行分析.
使用嵌入式编码器时,点击时,PolySpace检查生成的代码运行分析.如果未存在生成的代码,PolySpace首先启动代码生成过程,然后启动分析。
如果当前模型在另一个模型中引用,并且您希望在引用模型的上下文中验证生成的代码,而不是作为顶级模型生成的代码, 用代码生成为模型引用. 在latter case, Polyspace does not launch code generation automatically if there's no generated code. When analyzing代码生成为模型引用,在运行Polyspace分析之前生成代码。
您可以遵循MATLAB命令窗口中分析的进度。
除非明确禁用,否则结果自动打开。默认情况下,结果将保存在文件夹中结果_
在当前文件夹中。每次新运行都会覆盖以前的结果。您可以更改默认文件夹或将结果保存到Simulink项目。要进行这些更改,请在金宝app多空间选项卡,选择设置.型号名称
如果已关闭结果并希望稍后打开,请在多空间选项卡,选择分析结果. 要在上次运行之前打开结果,请选择打开前面的结果并导航到包含以前结果的文件夹。
结果显示在PolySpace用户界面中成绩表窗格。单击每个结果以查看源代码来源窗格和上的详细信息结果细节窗格。也可以看看:
代码注释中的链接显示生成后续代码行的块。要在模型中看到块,请单击链接中的块名称。如果您遇到问题,请参阅故障排除从代码到模型的导航.
或者,您可以右键单击变量名称并选择去模特. 此选项不适用于所有变量。只有源代码变量的子集可以直接跟踪到Simulink块。这个金宝app去模特选项可用于此类变量。有关可以将生成代码中的变量进行跟踪到Simulink块的更多详细信息,请参阅金宝app在生成的代码金宝app中跟踪Simulink模型元素(嵌入式编码器).
调查代码中的问题是否与模型中的设计缺陷有关。
模型中的设计缺陷可能导致生成的代码中的问题。例如:
如果在S函数块中包含手写C/C++代码,则多空间分析可以揭示手写代码和生成代码之间可能存在的集成问题。您还可以单独分析手写代码。看见对S函数代码运行多空间分析.
如果您不想响应PolySpace结果对模型进行更改,请注释相关块。在注释块后,从块中生成的代码操作显示与您的评论有关的结果。如果向子系统块或导致函数调用的块注释,则从块生成的代码操作不会在分析结果中显示您的注释。如果块是查找表,请启用存根查找表
而不是使用注释。看存根查找表
在使用嵌入式编码器生成的代码中,存在与MISRA C的已知偏差®:2012年。看MISRA C的偏差理由:2012年合规性(嵌入式编码器).通过注释块证明这些已知问题。
Simulink块或生成代码中金宝app的注释不会考虑分析的历史记录。如果您更新模型,PolySpace结果可能会在注释没有时更改。更新模型可能使现有的注释过时。更新模型或生成的代码时检查您的注释。
如果使用嵌入式编码器生成代码,则可以通过Polyspace用户界面直接注释Simulink块。找到要注释的问题,然后通过添金宝app加严重程度,地位和中的可选票据结果细节窗玻璃例如,在Polyspace用户界面中:
设定地位问题去弄清楚
设定评论让问题可能会影响“模块”
在源代码中,右键单击显示问题的变量,然后从上下文菜单中选择注释块.
审核信息将Simulink编辑器作为块注释突出显示,其中突出显示了注释块。金宝app
可以多次注释Simulink块。块上的金宝app后续注释将附加到以前的注释中。在Simulink编辑器中无法看到这些注释。当您使用Polyspace分析生成的代码时,这些注释将作为审阅信息显示在结果详情PolySpace用户界面的窗格。
PolySpace使用用户提供的信息来预先填充Simulink中的注释。金宝app在PolySpace用户界面中设置的注释显示在双引号中评论Simulink中金宝app的字段。如果在Polyspace用户界面中的注释中有双引号,则Simulink中的双引号将替换为单引号。
选项注释块可用于可以跟踪到Simulink块的代码元素。金宝app有关更多信息,请参阅在生成的代码金宝app中跟踪Simulink模型元素(嵌入式编码器).
要在Simulink编辑器中注释一个块,请选择块和块金宝app多空间选项卡,选择添加注释. 在PolySpace注释窗口:
从下拉菜单中选择要注释的多边形空间结果的类型注释类型
.
如果要注释相同类型的多个结果,请在文本框中输入以逗号分隔的结果首字母缩略词列表。见:
如果只想注释一个结果,请选择只有1个检查.文本框被转换为下拉菜单。从此下拉菜单中选择要注释的结果。
在相应的文本框中,输入要为结果分配的状态,严重性和注释。
在里面PolySpace注释窗口,您可以一次注释单个类型的PolySpace结果。注释多种类型的结果。打开PolySpace注释多次窗口。每次,添加对应于一种类型的PolySpace结果的注释。不同的注释彼此附加。在Simulink编辑器中无法看到这些注释。金宝app使用PolySpace分析生成的代码时,这些注释将显示为审核信息结果详情PolySpace用户界面的窗格。
有时,生成的代码中的操作会导致代码先驱的橙色检查。假设操作可能溢出。通过饱和度操作,生成的代码通过操作来保护溢出。PolySpace仍然将可能的溢出标记为橙色检查。要通过代码评论证明这些检查,请指定配置参数操作员注释(嵌入式编码器).
复制带注释的块,然后在不同模型或同一模型中的不同位置使用该块时,更改的上下文可能会导致注释不正确。
PolySpace不允许在库内和非atomic子系统内的块中的注释,因为这些块在许多不同的上下文中重复使用。例如,您无法在库中注释一个块,并在库块的所有实例上证明结果证明结果。
金宝appSimulink不会在复制到不同模型或同一模型中不同位置的块中保留多边形空间注释。