运行Polyspace生成的代码分析嵌入式编码器
如果您从Simulink中生成代码万博1manbetx®使用嵌入式编码器进行建模®或TargetLink®,您可以使用Polyspace分析生成的代码的错误或运行时错误®从Simulink环境中。万博1manbetx您不必手动设置Polyspace项目。
本主题使用嵌入式编码器进行代码生成。有关targetlink生成代码的分析,请参见对TargetLink生成的代码运行Polyspace分析.
有关具有特定模型的教程,请参见对Simulink模型生成的代码进行多空间分析万博1manbetx.
您可能希望用其他手写代码在Simulink外部分析生成的代码。万博1manbetx在此工作流程中,提取Polyspace选项并运行分析,例如,从Windows命令行。看到使用打包的选项文件对生成的代码运行Polyspace分析.对于较老的版本,Polyspace支持从生成的代码导航回模型万博1manbetx。看到导航回到模型.
先决条件
在从Simulink运行Polyspace之前,必须将Pol万博1manbetxyspace和MATLAB链接起来®安装。看到将Polyspace与MATLAB和Simulink集成万博1manbetx.
生成和分析代码
配置代码生成和生成代码
要配置代码生成并从模型生成代码,请执行以下操作以下之一:
在应用程序选项卡上,选择嵌入式编码器.然后,在C代码选项卡上,选择快速启动.按照屏幕上的说明操作。
在C代码选项卡上,单击设置并通过Simulink配置参数配置代码生成。万博1manbetx设置的主要参数是:
类型(万博1manbetx模型):选择固定步.
解算器(万博1manbetx模型):选择自动(自动求解器选择)或离散(无连续状态).
系统目标文件(万博1manbetx仿真软件编码器):输入
ert.tlc
或autosar.tlc
.如果您从。派生目标文件ert.tlc
,您也可以指定它们。Code-to-model(嵌入式编码):选择此选项以启用从代码到模型的链接。
有关要设置的参数的完整列表,请参见多空间分析的推荐模型配置参数.
或者,使用目标运行代码生成AdvisorPolyspace看看所需的参数是否已经设置好了。看到使用代码生成顾问为代码生成目标配置模型(嵌入式编码).
以从模型生成代码C代码选项卡上,选择生成代码.您可以在Diagnostic Viewer中跟踪代码生成的进度。
配置代码分析
在应用程序选项卡上,选择Polyspace代码验证器.在Polyspace标签:
分析代码
要分析从模型生成的代码,请单击画布上的任何位置。的分析代码字段显示模型名称。选择运行分析.
当使用Embedded Coder时,Polyspace在单击时检查生成的代码运行分析.如果没有生成的代码,或者自上次Polyspace分析以来模型发生了更改,Polyspace首先启动代码生成过程,然后开始分析。
如果当前模型在另一个模型中被引用,并且您希望在引用模型的上下文中验证生成的代码,而不是作为顶级模型生成的代码,使用作为模型参考生成的代码.在后一种情况下,如果没有生成的代码,Polyspace不会自动启动代码生成。在分析作为模型参考生成的代码,在运行Polyspace分析之前生成代码。
您可以在MATLAB命令窗口中跟踪分析的进展。
结果会自动打开,除非明确禁用。默认情况下,结果保存在一个文件夹中results_
在当前文件夹中。每次新的运行都会覆盖以前的结果。您可以更改默认文件夹或将结果保存到Simulink项目中。万博1manbetx要进行这些更改,请在Polyspace选项卡上,选择设置.ModelName
如果您已关闭结果并希望稍后打开它们,请在Polyspace选项卡上,选择分析结果.要在最后一次运行之前打开结果,请选择打开早期结果并导航到包含前面结果的文件夹。
回顾分析结果
代码评审结果
的Polyspace用户界面中显示结果结果列表窗格。单击每个结果以查看源代码源的窗格和详细信息结果细节窗格。参见:
从代码导航到模型
代码注释中的链接显示生成后续代码行的块。要查看模型中的块,请单击链接中的块名称。如果遇到问题,请参见从代码到模型的故障排除导航.
或者,您也可以右键单击变量名并进行选择转到模型.此选项并非对所有变量都可用。只有源代码变量的子集可以直接追踪到Simulink块。万博1manbetx的转到模型Options可用于此类变量。有关生成代码中的哪些变量可以追踪到Simulink块的更多细节,请参见万博1manbetx在生成的代码万博1manbetx中跟踪Simulink模型元素(嵌入式编码).
解决问题
调查代码中的问题是否与模型中的设计缺陷有关。
模型中的设计缺陷会导致生成的代码出现问题。例如:
如果在s函数块中包含手写的C/ c++代码,Polyspace分析可以揭示手写代码和生成代码之间可能的集成问题。还可以单独分析手写代码。看到对s函数码进行多元空间分析.
注释块以证明问题
您可能希望在不修改代码或模型的情况下验证Polyspace的一些结果。从Polyspac万博1manbetxe用户界面或Simulink编辑器对Simulink块进行注释。看到通过注释Simulink块来解决Polyspace结果万博1manbetx.