对通过 Embedded Coder 生成的代码运行 Polyspace 分析

如果使用 Embedded Coder从 Simulink® 模型中生成代码,则可以在 Simulink 环境中使用 Polyspace分析生成的代码是否存在 Bug 或运行时错误。不必手动设置 Polyspace 工程。

1. 前提条件

在从 Simulink 中运行 Polyspace 之前,必须将已安装的 Polyspace 与 MATLAB 相关联。

2. 生成并分析代码

详细步骤如下图所示:

配置代码生成并生成代码

要配置代码生成并从某个模型生成代码,请执行以下操作之一:

  • 在 App 选项卡上,选择 Embedded Coder。然后,在 C 代码选项卡上,选择快速启动。按照屏幕上的说明进行操作。
  • 在 C 代码选项卡上,点击设置并通过 Simulink 配置参数配置代码生成。要设置的主要参数如下:
    • 类型 (Simulink):选择定步长
    • 求解器 (Simulink):选择自动(自动求解器选择) 或离散(无连续状态)
    • 系统目标文件 (Simulink Coder):输入 ert.tlc 或 autosar.tlc。如果您从 ert.tlc 派生目标文件,则还可以对其进行指定。
    • Code-to-model (Embedded Coder):选择此选项可启用从代码到模型的链接。

要从模型生成代码,请在 C 代码 选项卡上选择生成代码。您可以在诊断查看器中跟踪代码的生成进度。

配置代码分析

在 App 选项卡上,选择 Polyspace 代码验证器。在 Polyspace 选项卡上:

  1. 选择要运行的产品:Bug Finder 或 Code Prover。Code Prover 分析可检测运行时错误,而 Bug Finder 分析可检测编码缺陷和编码违规。
  2. 选择设置。如果需要,可更改这些选项的默认值。
    • 设置来源:除工程配置中指定的默认检查之外,还支持对 MISRA™ 编码规则的检查。默认 Bug Finder 检查会查找编码缺陷。默认 Code Prover 检查会查找运行时错误。
    • InputTunable parametersOutput:对输入、可调参数或输出进行约束,以执行更精确的 Code Prover 分析。
    • Output folder:为结果指定一个专用文件夹。默认分析会将结果保存在当前工作文件夹的 results_modelName 文件夹中。
    • Open results automatically after verification

分析代码

要分析从模型生成的代码,请点击画布上的任意位置。分析以下来源的代码字段显示模型名称。选择运行分析

使用 Embedded Coder 时,Polyspace 会在您点击运行分析时检查生成的代码。如果不存在生成的代码,或者模型自上次执行 Polyspace 分析以来已发生更改,则 Polyspace 首先会启动代码生成过程,然后再开始进行分析。

如果另一个模型中引用了当前模型,并且您希望在引用该模型的上下文中验证生成的代码,请使用生成的模型引用代码而非生成的顶层模型代码。在后一种情况下,如果不存在生成的代码,则 Polyspace 不会自动启动代码生成。分析生成的模型引用代码时,请在运行 Polyspace 分析前生成代码。

您可以在 MATLAB 命令窗口中跟踪分析进度。

结果将自动打开,除非被显式禁用。默认情况下,结果将保存在当前文件夹的 results_ModelName 文件夹中。每次新运行时都会覆盖以前的结果。您可以更改默认文件夹或将结果保存到 Simulink 工程。要进行这些更改,请在 Polyspace 选项卡上选择设置

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

3. 查看分析结果

在代码中审查结果

结果显示在 Polyspace 用户界面的结果列表窗格中。点击每个结果即可在窗格中查看源代码,并在结果详细信息窗格中查看详细信息。

从代码导航到模型

代码注释中的链接会显示生成后续代码行的模块。要查看模型中的模块,请点击链接中的模块名称。

另外,您也可以右键点击变量名称并选择转至模型。此选项并非适用于所有变量。只有部分源代码变量可以直接追溯到 Simulink 模块。转至模型选项适用于此类变量。

修复问题

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

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

  • 仅当某个模块参数处于特定范围时,生成的代码才有可能不出现特定的运行时错误。要修复此问题,您可以使用配置参数Tunable parameters更改该模块参数的存储类,或使用标定数据进行分析。
  • 仅当输入处于特定范围时,生成的代码才有可能不出现特定的运行时错误。要确定该不出错的范围,您可以为 Inport 模块信号指定最小值和最大值。Polyspace 分析将使用此受限范围。
  • Stateflow® 图中的某些转换可能无法实现

可以将生成的代码与手写代码集成。Polyspace 分析可以检测由集成引起的编码缺陷和编码违规。如果您的 Simulink 模型中包含任何手写代码,您可以单独分析包含的手写代码。

4. 为模块添加注释以对问题进行申述

可能要在不修改代码或模型的情况下对某些 Polyspace 结果进行申述。请通过 Polyspace 用户界面或 Simulink 编辑器为 Simulink 模块添加注解

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Embedded Coder针对AUTOSAR(AUTomotive Open System Architecture)标准提供了支持包。AUTOSAR是用于汽车电子系统开发的开放标准。通过Embedded Coder的支持包,开发人员可以更方便地使用MATLAB和Simulink进行AUTOSAR应用程序的开发和验证。 Embedded Coder支持包为AUTOSAR提供了自动生成和自动配置AUTOSAR软件组件的功能,无需手动编写或配置大量的代码。使用Embedded Coder,开发人员可以通过MATLAB和Simulink的图形化界面来设计和测试AUTOSAR应用程序,并自动生成与AUTOSAR标准兼容的C代码。 Embedded Coder的支持包还提供了AUTOSAR的元模型,该模型包含AUTOSAR标准的核心构造块,如软件组件、服务接口、端到端连线等。开发人员可以在MATLAB和Simulink中使用这些元模型,以及AUTOSAR建模工具箱,快速构建AUTOSAR应用程序。 此外,Embedded Coder的支持包还包括AUTOSAR的约束和规格管理工具。开发人员可以使用这些工具来验证代码是否遵循AUTOSAR标准,并自动生成符合标准的文档和报告。 综上所述,Embedded Coder的支持包为AUTOSAR标准提供了强大的开发和验证工具,帮助开发人员更高效地设计和实现AUTOSAR应用程序,并加快产品开发周期,提高软件质量。 ### 回答2: 嵌入式编码器支持包(Embedded Coder Support Package)用于AUTOSAR标准。AUTOSAR(Automotive Open System Architecture)是用于汽车电子系统的开放式软件架构标准。该标准旨在加强汽车电子系统的可重用性、可扩展性和互操作性。 嵌入式编码器支持包是MATLAB和Simulink的一个功能扩展,用于与AUTOSAR标准进行集成。该支持包提供了一系列工具和功能,使开发人员能够创建符合AUTOSAR标准的嵌入式代码。 使用嵌入式编码器支持包,开发人员可以从Simulink模型自动生成AUTOSAR标准的C代码。该支持包具有与AUTOSAR标准相一致的架构和命名约定,包括AUTOSAR的软件组件、接口、端口和信号等概念。 嵌入式编码器支持包还提供了与AUTOSAR工具链进行交互的功能。开发人员可以使用该支持包将生成的C代码与AUTOSAR工具链中的其他软件组件进行集成和验证。这种集成可以通过AUTOSAR内容描述文件(ARXML文件)来实现,ARXML文件描述了AUTOSAR系统架构的各个方面。 通过嵌入式编码器支持包,开发人员可以更加高效地开发和部署AUTOSAR标准的嵌入式系统。他们可以在Simulink环境中使用高级建模和仿真功能,然后使用嵌入式编码器支持包将模型转换为可部署的C代码,从而减少了手动编码的工作量和错误的机会。 总之,嵌入式编码器支持包为AUTOSAR标准提供了一种高效的开发方法,同时提供了与AUTOSAR工具链的集成能力,使开发人员能够更轻松地创建和部署符合AUTOSAR标准的嵌入式系统。 ### 回答3: Embedded Coder Support Package for AUTOSAR Standard(AUTOSAR标准的嵌入式编码器支持包)是MathWorks开发的一种用于AUTOSAR(Automotive Open System Architecture)标准的软件工具包。AUTOSAR是一个用于开发汽车软件的全球行业标准,旨在提高汽车软件开发的效率和可重复性。 嵌入式编码器支持包为使用MathWorks的MATLAB和Simulink工具进行AUTOSAR软件开发提供了便利。它包含了与AUTOSAR标准兼容的构建块、代码生成器以及与AUTOSAR软件架构约束相匹配的自动代码生成规则。此支持包还提供了与AUTOSAR标准相关的模型检查器、验证工具和生成的代码的静态分析。 使用嵌入式编码器支持包,开发人员可以通过MATLAB和Simulink的模型驱动开发方法快速建模和设计AUTOSAR系统。开发人员可以使用自动生成的AUTOSAR代码直接部署到AUTOSAR平台上,提高开发效率并降低错误率。 此外,嵌入式编码器支持包还提供了用于自动配置AUTOSAR软件组件和服务的工具。它通过与AUTOSAR的构建工具链和开发环境紧密集成,从而帮助开发人员更好地集成和部署AUTOSAR系统。 总而言之,嵌入式编码器支持包是一种用于AUTOSAR标准的软件工具包,它提供了MATLAB和Simulink的功能,用于在AUTOSAR架构下进行快速、高效的软件开发。通过使用这个支持包,开发人员可以更好地遵循AUTOSAR标准,并减少开发时间和错误率,从而提高最终软件的质量和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43015338

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值