主要内容

代码生成报告

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

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

  • 查看生成的C / C ++代码。

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

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

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

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

报告生成

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

在里面Matlab编码器应用程序:

  • 生成报告,设置始终创建一个报告是的

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

在命令行,使用Codegen.选项:

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

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

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

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

  • 如果你想Codegen.为您打开报告,请设置LaunchReport.真的

报告位置

代码生成报告被命名为报告.MLDATX.。它位于HTML.代码生成输出文件夹的子文件夹。如果您有Matlab R2018A或更高版本,您可以打开报告.MLDATX.通过双击它来文件。

错误和警告

查看代码生成错误,警告和信息消息所有消息标签。要突出显示错误或警告的源代码,请单击该消息。这是解决第一条消息的最佳做法,因为后续错误和警告可以与第一条消息相关。

查看编译和链接错误和警告构建日志标签。代码生成器仅检测MEX输出的编译警告,或者如果您使用支持的编译器进行其他类型的输出。金宝app看金宝app支持的编译器

文件和函数

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

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

如果您有嵌入式编码器并启用了可跟踪性的报告,要在代码窗格中查看源代码和生成的代码,请单击跟踪代码。您可以在源代码和生成的代码之间交互式追踪。看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代码与生成代码之间的映射。要访问交互式跟踪,请在报告中单击跟踪代码

    跟踪代码仅当您有嵌入式编码器时启用按钮,并且在生成代码时启用代码可跟踪性。看MATLAB代码与生成C / C ++代码之间的交互跟踪(嵌入式编码器)

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

    在一个注释中,代码生成器会产生一个可帮助您找到相应的MATLAB源代码的标记。如果您有嵌入式编码器,则标记是源代码的链接。看跟踪生成的C / C ++代码到MATLAB源代码

代码见解

代码生成器可以检测和报告可能在生成的代码中可能发生的问题。查看消息代码见解标签。这些问题包括:

附加报告

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

报告限制

  • 入口点摘要显示了各个元素varargin.varargout.,但变量表并未显示它们。

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

  • 该报告不会显示有关死路代码的信息。

相关话题