如果您从Simulink生成代码金宝app®通过使用嵌入式编码器模型®或TargetLink®,你可以分析错误或Polyspace运行时错误生成的代码®在Simulink环境中。金宝app您不必手动设置Polyspace项目。
本课题采用嵌入式编码器生成代码。对于TargetLink的生成的代码分析,见生成与TargetLink的运行Polyspace分析代码。
有关特定模型的教程,请参见运行Polyspace分析代码从Simulink的模型生成金宝app。
你从Simulink中运行Polyspace之前,必须链接您金宝appPolyspace和MATLAB®安装。看到将Polyspace与MATLAB和Simulink相结合金宝app。
要配置代码生成并从模型生成代码,请执行以下操作以下情况之一:
在应用选项卡上,选择嵌入式编码器。然后,在C代码选项卡上,选择快速启动。按照屏幕上的说明。
在C代码选项卡,单击设置和配置代码生成通过Simulink的配置参数。金宝app主要参数设置如下:
有关要设置的参数的完整列表,请参见Polyspace分析推荐的模型配置参数。
另外,运行代码生成顾问与目标Polyspace看看是否已经设置了所需的参数使用代码生成顾问配置模型代码生成目标(嵌入式编码)。
从模型生成代码,在C代码选项卡上,选择生成代码。您可以在诊断查看器中跟踪代码生成的过程。
在应用选项卡上,选择Polyspace代码验证。在Polyspace标签:
要分析从模型生成的代码,单击画布上的任意位置。的分析代码字段显示模型名称。选择运行分析。
如果当前模型在另一个模型中被引用,并且您希望在模型被引用的上下文中验证生成的代码,而不是作为顶级模型生成的代码,使用作为模型参考生成的代码。
您可以在MATLAB命令窗口中了解分析的过程。
除非显式禁用,否则结果将自动打开。默认情况下,结果保存在一个文件夹中results_
在当前文件夹。每次新的运行覆盖以前的结果。您可以更改默认的文件夹或结果保存到Simulink的项目。金宝app为了使这些变化,在Polyspace选项卡上,选择设置。型号名称
如果您已关闭的结果,并希望以后打开它们,在Polyspace选项卡上,选择分析结果。要打开之前的最后一次运行的结果,选择开放前的结果并导航到包含以前结果的文件夹。
的Polyspace用户界面中出现结果列表窗格。的源代码源窗格和细节结果细节窗格。参见:
代码注释中的链接显示生成后续代码行的代码块。要查看模型中的块,单击链接中的块名。如果你遇到问题,看看疑难解答导航从代码到模型。
或者,您可以右键单击一个变量名并选择去模型。此选项并非适用于所有的变量。
研究代码中的问题是否与模型中的设计缺陷有关。
模型中的设计缺陷可能会导致生成的代码中出现问题。例如:
如果包括手写的C / C ++中的S-功能模块的代码中,Polyspace分析可以揭示手写和生成的代码之间可能存在的整合问题。您也可以分析隔离手写代码。看到运行Polyspace分析S-功能代码。
如果不希望对Polyspace结果做出响应,请注释相关块。在注释一个块之后,从该块生成的代码操作将显示预先使用注释填充的结果。如果您注释了一个子系统块或导致函数调用的块,那么从该块生成的代码操作不会在分析结果中显示您的注释。如果该块是一个查找表,则启用存根查找表
而不是使用注释。
若要注释一个块,请选择该块并在Polyspace选项卡上,选择添加注释。输入以下内容:
以逗号分隔的结果缩略词的列表。为了证明只有结果的类型,选择只有1检查。
看到:
代码验证程序运行时检查的简短名称(Polyspace代码证明者)
状态、严重性和要分配给结果的注释。
有时,在生成的代码操作已知会导致代码证明器橙色检查。假设的操作是已知的可能溢出。所生成的代码通过用饱和以下操作防止溢出。Polyspace仍标志可能溢出橙色检查。为了证明自动通过代码注释这些检查,指定配置参数操作员注释(嵌入式编码)。
当您在不同的位置或模型重用注释块,改变的上下文可以使注释不正确。为了避免不正确的注释:
Polyspace不允许标注在图书馆和非原子子系统内部的块,因为这些块在许多不同的上下文中重用。你不能注释块的库中,并证明该块的所有实例的结果。
金宝appSimulink不会在复制到不同位置或模型的块中保留Polyspace注释。