主要内容

代码生成报告

马铃薯®编码器™生成一个代码生成报告,可帮助您获取:

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

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

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

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

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

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

报告生成

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

在里面MATLAB编码器应用:

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

  • 如果您希望应用程序为您打开报告,请设置如果生成报告,则自动启动报告是的

在命令行,使用codegen选项:

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

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

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

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

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

报告位置

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

错误和警告

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

查看编译和链接错误和警告构建日志选项卡。代码生成器只检测MEX输出的编译警告,或者是否对其他类型的输出使用支持的编译器。万博1manbetx看到万博1manbetx支持编译器

文件和函数

该报告列出了MATLAB源函数和生成的文件。在里面Matlab资源窗格中,功能列表查看根据包含文件组织函数。要根据呼叫结构可视化功能,请使用调用树视图。

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

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

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

专用函数或类

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

定点转换后的函数列表

如果将浮点MATLAB代码转换为固定点MATLAB代码,然后生成固定点C / C ++代码,则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源代码

代码见解

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

额外的报告

总结选项卡可以与这些附加报告有链接:

报告的局限性

  • 入口点摘要显示了变长度输入宗量varargout.,但变量表没有显示它们。

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

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

相关的话题