主要内容

代码生成报告

MATLAB®编码器™生成代码生成报告,帮助您:

  • 调试代码生成问题,并验证您的MATLAB代码适合代码生成。

  • 视图生成的C/ c++代码。

  • 跟踪之间的MATLAB源代码和生成的C/ c++代码。

  • 了解代码生成器如何确定和传播MATLAB代码中变量和表达式的类型信息。

  • 识别生成代码中的潜在问题。

  • 使用嵌入式编码器访问其他可用的报告®

报告生成

当启用报告生成或发生错误时,代码生成器将生成代码生成报告。要控制代码生成报告的生成和打开,请使用应用程序设置,codegen选项或配置对象属性。

MATLAB编码器应用:

  • 要生成报告,请设置总是创建一个报告是的

  • 如果你想让应用程序为你打开报告,设置如果生成报告,则自动启动报告是的

在命令行,使用codegen选项:

  • 要生成报告,请使用报告选择。

  • 要生成和打开报告,请使用-launchreport选择。

或者,使用配置对象属性:

  • 要生成报告,请设置GenerateReport真正的

  • 如果你想要codegen要打开报告,请设置LaunchReport真正的

报告位置

代码生成报告被命名report.mldatx.它位于超文本标记语言代码生成输出文件夹的子文件夹。如果你有MATLAB R2018a或更高版本,你可以打开report.mldatx文件,双击它。

错误和警告

控件上的代码生成错误、警告和信息消息所有消息选项卡。若要突出显示错误或警告的源代码,请单击该消息。最佳实践是处理第一条消息,因为后续的错误和警告可能与第一条消息相关。

控件上的编译和链接错误和警告建立日志选项卡。代码生成器只检测MEX输出的编译警告,或者是否对其他类型的输出使用支持的编译器。金宝app看到金宝app支持编译器

文件和函数

该报告列出了MATLAB源函数和生成的文件。MATLAB源窗格中,函数列表视图根据包含的文件组织函数。要根据调用结构可视化函数,请使用调用树视图。

若要在报告的代码窗格中查看函数,请单击列表中的函数。单击函数将打开包含该函数的文件。要在MATLAB编辑器中编辑选定的文件,单击编辑在MATLAB或者单击代码窗格中的行号。

如果您拥有Embedded Coder并生成了启用了可跟踪性的报告,要在代码窗格中并排查看源代码和生成的代码,请单击跟踪代码.您可以交互地跟踪源代码和生成的代码。看到交互式跟踪MATLAB代码和生成的C/ c++代码(嵌入式编码)

如果您想将为独立代码(库或可执行文件)生成的文件移动到另一个开发环境中,您可以通过单击将它们放入zip文件中包代码

专用函数或类

当使用不同类型的输入调用函数或类使用不同类型的属性时,代码生成器会产生专门化。在MATLAB源窗格中,编号的函数(或类)表示专门化。例如:

定点转换后的函数列表

如果您将浮点MATLAB代码转换为定点MATLAB代码,然后生成定点C/ c++代码,则MATLAB源窗格列出了原始MATLAB函数和定点MATLAB函数。例如:

MATLAB

要在代码窗格中查看MATLAB函数,请单击MATLAB源窗格。若要查看有关变量或表达式类型的信息,请在变量或表达式上暂停。

在代码窗格中,MATLAB源代码的语法高亮显示帮助您识别MATLAB语法元素。语法高亮显示还可以帮助您识别某些代码生成属性,比如函数是否是外部的,或者参数是否是常量。

非本征函数

在MATLAB代码中,报告用紫色文本标识一个外部函数。信息窗口表明该函数是外部的。

常数参数

在MATLAB代码中,橙色文本表示入口点函数或专用函数的编译时常量参数。信息窗口包含常量值。

知道常量参数的值有助于理解生成的函数签名。它还帮助您了解代码生成何时为不同的常量参数值创建了函数专门化。

要将值导出到工作区中的变量,请单击

MATLAB变量

变量选项卡提供有关所选MATLAB函数的变量的信息。若要选择某个功能,请单击MATLAB源窗格。

变量表显示:

  • 类别、大小和复杂性

  • 定点类型的属性

  • 数组是否为稀疏数组

  • 阵列布局

此信息有助于调试错误(例如类型不匹配错误),并帮助您理解代码生成器如何传播类型并在生成的代码中表示数据。

“变量”选项卡上的可视指示器

该表描述变量表中的符号、标识和其他指标。

列在变量表中 指示器 描述
的名字 扩张器 变量具有可以通过单击扩展器查看的元素或属性。
的名字 {:} 异构单元阵列(所有元素具有相同的属性)
的名字 {n} 异构单元阵列的第n个元素
v > n v以不同的类、大小和复杂性重用。数量n标识每个惟一重用(具有惟一属性集的重用)。当您在重命名的变量上暂停时,报告只突出显示这个变量的实例,这些实例共享类、大小和复杂性。看到重用具有不同属性的相同变量
大小 : n 上界为n的变尺寸维数
大小 :? 可变大小,没有上限
大小 斜体 可变大小数组,其尺寸在执行期间不改变大小
稀疏的前缀 稀疏阵列
复杂的前缀 复数

定点类型

要查看定点属性,请单击面板。

“变量”选项卡上的“阵列布局指示器”

该表描述了变量表中指示数组布局的标记。

徽章 描述

行存储阵列布局。

列为主的阵列布局。

行主和列主的混合布局。

看到行主和列主数组布局

跟踪代码

您可以跟踪MATLAB源代码和生成的C/ c++代码之间使用以下方法之一:

  • 交互式可视化的映射之间的MATLAB代码和生成的代码。要访问交互式跟踪,请在报告中单击跟踪代码

    跟踪代码按钮只有在您拥有Embedded Coder并且在生成代码时启用了代码可跟踪性时才会启用。看到交互式跟踪MATLAB代码和生成的C/ c++代码(嵌入式编码)

  • 在生成的C/ c++代码中包含源代码作为注释。

    在注释中,代码生成器生成一个标记,帮助您找到相应的MATLAB源代码。如果您有Embedded Coder,标签是指向源代码的链接。看到跟踪生成的C/ c++代码到MATLAB源代码

代码的见解

代码生成器可以检测并报告生成的代码中可能出现的问题。查看消息代码的见解选项卡。这些问题包括:

  • 生成代码的行为和MATLAB代码的行为之间的潜在差异。只有启用了潜在差异报告,报表才会包含潜在差异消息。看到潜在的差异报告

  • 生成代码中的潜在数据类型问题,例如单精度和双精度操作。

    只有当您使用Embedded Coder并启用了潜在数据类型问题报告时,报告才会包含潜在数据类型问题。如果您有Fixed-Point Designer™,报告还会识别昂贵的定点操作。看到突出显示报表中的潜在数据类型问题(嵌入式编码)

  • 潜在的存储问题。看到行主数组布局的代码设计

额外的报告

总结TAB可以有这些附加报告的链接:

报告的局限性

  • 入口点摘要显示了varaginvargout,但变量表没有显示它们。

  • 报告没有显示展开循环的完整信息。它显示一个任意迭代的数据类型。

  • 报告没有显示死代码的信息。

相关的话题