主要内容

为生成的代码创建执行时间配置文件

您可以配置软件在环(SIL),处理器在环(PIL),或基于xcp的外部模式模拟生成生成代码中的任务和函数的执行时间度量。该软件根据通过添加到目标应用程序的代码插装或测试下生成的代码获得的数据计算执行时间。您可以使用执行时间度量来确定生成的代码是否满足在目标硬件上实时部署的需求。

例如,可执行以下分析:

  1. 确定最需要时间的任务。任务是生成代码的主要入口点。例如,阶跃函数的抽样率或模型_initialize函数。

  2. 在这些任务中,研究需要花费最多时间的代码部分。

  3. 识别执行时间随时间步骤的变化。

如果您试图减少执行时间,分析结果可以帮助您关注最关键的代码部分。要观察更新模型的性能变化,请重新运行SIL、PIL或外部模式模拟,并将新指标与以前的指标进行比较。

当SIL, PIL,或外部模式模拟完成时,您可以:

  • 通过显示窗口或报告查看执行时间指标。

  • 使用“模拟数据检查器”查看和比较模拟中执行时间的变化。

  • 在MATLAB中分析测量结果®环境。

配置代码执行概要

此表列出了代码执行概要分析支持的系统目标文件。

模拟模式 系统目标文件

SIL或PIL

GRT, ERT或基于ERT的

XCP-based外部

ERT或基于ERT的

为基于SIL、PIL或xcp的外部模式模拟配置代码执行概要:

  1. 在顶层模型中,打开配置参数对话框。

  2. 选择测量任务执行时间复选框。

  3. 对于函数执行时间,从测量函数执行时间下拉列表,选择以下选项之一:

    • 粗略的(仅参考模型和子系统)——如果你想分析生成的主要模型组件的功能代码。

    • 详细信息(所有函数调用站点)——如果你想分析模型中所有块的生成函数代码。

  4. 工作空间变量字段,指定一个名称。当您运行模拟时,软件将在MATLAB基本工作空间中生成一个具有此名称的变量。变量包含执行时间度量,并且是类型对象coder.profile.ExecutionTime

    如果数据导入/导出>单次仿真输出复选框时,软件将在仿真软件。SimulationOutput对象指定的。

  5. 保存选项下拉列表,选择以下选项之一:

    • 仅提供汇总数据-在模拟过程中,流执行时间到模拟数据检查器。在模拟结束时存储最少的信息。如果您只想生成一个报告并减少内存使用,请使用此选项,例如,在一个较长的模拟中。

    • 所有的数据-在模拟过程中,流执行时间到模拟数据检查器。在基本工作空间中存储执行时概要文件并生成报告。模拟完成后,可以使用方法coder.profile.ExecutionTime而且coder.profile.ExecutionTimeSection类检索模拟期间发生的对每个概要代码段的每次调用的执行时度量。

      如果选择此选项,度量显示窗口和生成的报告将显示模拟数据检查器图标.单击图标后,软件将仿真结果导入到仿真数据检查器中。然后,您可以绘制执行时间,并管理和比较来自各种模拟的图。

    • 指标只减少Simulink之间通信通道的带宽使用®和目标应用程序。在模拟期间,软件不会将执行时间流发送到模拟数据检查器。在目标硬件上,软件存储最大执行次数、平均执行次数和调用次数。在模拟结束时,Simulink将数据从目标硬件上传到您的开发计算机。

  6. 点击好吧

对于PIL模拟:

控制配置粒度

您可以控制执行时分析的粒度,也就是说,防止将代码插装添加到特定的函数调用站点。通过对剖析粒度的控制,您可以:

  • 关注需要改进的模型组件的性能。例如,在初始运行之后,禁用需要很少处理时间的块的概要分析。此操作将减少分析报告显示的项的数量。

  • 减少代码插装开销。例如,对于简单的函数,代码插装开销可能大于函数代码的执行时间。

用于仅为任务生成执行时指标代码生成>验证窗格的“配置参数”对话框中,选择测量任务执行时间复选框和设置测量函数执行时间

为顶层模型中的引用模型和原子子系统生成函数执行数据代码生成>验证窗格中,选择测量任务执行时间复选框和设置测量函数执行时间粗略的(仅参考模型和子系统)

生成函数执行数据需要在生成的代码中插入度量探测。属性时,软件才会为原子子系统插入测量探针函数包装字段(在代码生成在“功能块参数”对话框的选项卡中选择那种一次性的功能可重用的功能.如果该字段设置为汽车,则探针的插入取决于由汽车设置。如果该字段设置为内联时,软件不插入探针。

请注意

在生成的代码中,软件用测量探针包装每个函数调用,除了以下情况:

为模型引用层次结构生成函数执行时间:

  1. 在顶层模型中,打开“配置参数”对话框,选择代码生成>验证窗格。

  2. 选择测量任务执行时间复选框

  3. 为每一个模型要分析的块,请指定测量函数执行时间仅在需要函数执行时间的引用级别。

例如,考虑一个顶级模型模型块A,其中包含模型块B。

如果您想从模型B生成函数的执行时间,请选择测量任务执行时间为顶部模型并指定测量函数执行时间模型B。

顶模型的这些参数覆盖了参考模型的相应参数:

  • 测量任务执行时间.如果为顶级模型禁用此参数,也将禁用引用模型的功能分析。

  • 工作空间变量

  • 保存选项

要控制模型中块(例如子系统块)的代码执行概要,请使用CodeProfilingOverride块参数:

  1. 在Simulink编辑器中,选择块。

  2. 在命令窗口中运行:

    set_param (gcb,‘CodeProfilingOverride’,blockParameterValue
    使用这些值中的一个blockParameterValue

    • “关闭”——禁用块分析。

    • “上”——如果对父模型启用剖析,则对块启用剖析。

    • “继承”(默认)——应用父块的分析设置。

更改块分析配置不会导致重新生成产品代码。

如果您的顶级模型有一个PIL块,那么应用于PIL块的执行概要设置就是您用来创建PIL块的原始模型的设置。看到子系统块仿真.你不能使用CodeProfilingOverride来控制PIL块的分析。

另请参阅

|||

相关的话题

Baidu
map