主要内容

之间的交互跟踪MATLAB代码和生成的C / c++代码

这个例子展示了如何跟踪MATLAB之间®源代码和生成的C / c++代码。跟踪源代码和生成的代码可以帮助您:

  • 了解你的算法实现的代码生成器。

  • 在生成的代码调试问题。

  • 生成的代码的质量进行评估。

如果你有嵌入式编码器®并使生产代码生成报告的可追溯性,您可以查看MATLAB源代码和生成的C / c++代码下。当你移动你的指针的代码,您可以遵循突出痕迹生成相应的代码或MATLAB源代码。

创建MATLAB源代码

为了说明互动的可追溯性,本例中产生一个报告生成C静态库的MATLAB函数lpsolve这种方法解决了线性规划:

  • 最大化y = c * x

  • * x < = b

  • x > = 0和b > = 0

lpsolve

这个示例还使用一个测试函数lpsolve_test调用lpsolve代表输入值。

lpsolve_test

在一个可写的文件夹,创建这些文件lpsolve.mlpsolve_test.m通过复制本节中的扩展器的代码。

准备代码生成

在您生成C / c++代码之前,这是一个最佳实践为代码生成准备屏幕MATLAB代码。

coder.screener (“lpsolve”)

代码生成准备报告表明lpsolve适用于代码生成。

这也是最佳实践来检查通过生成和测试一个墨西哥人函数运行时问题。

  • 指定类型的输入参数,通过代表输入值codegenarg游戏选择。另外,因为你有一个测试函数,您可以使用coder.getArgTypes确定类型。

  • 生成和测试一个墨西哥人函数,使用以及选择。

c = [2 3 1 1];= (2 3 1 1;1 0 2 1;0 2 1 1];b =(27日、9日、18);codegenlpsolvearg游戏c {b}以及lpsolve_test
运行测试文件:“lpsolve_mex”与墨西哥人“lpsolve_test”功能。x = 5 7 0 4 y = 35

codegen成功生成和运行墨西哥人功能。

产生代码生成报告和可追溯性

生成一个报告,有互动的可追溯性:

  • 创建一个coder.EmbeddedCodeConfig对象。的EnableTraceability属性控制的可追溯性。默认情况下,EnableTraceability属性是真正的

  • 指定输入参数的类型通过代表输入值arg游戏选择。

  • 使生产使用代码生成报告报告选择。

cfg = coder.config (“自由”,“是”,真正的);codegen配置cfglpsolvearg游戏c {b}报告

访问报告中跟踪模式

打开代码生成报告,点击查看报告

在代码中窗格中,您可以看到lpsolve.m

在启用跟踪报告选项卡上,单击跟踪代码

你看到的MATLAB源代码和生成的C代码相邻。

跟踪代码

你可以从MATLAB代码跟踪C代码或从C代码到MATLAB代码。跟踪代码是标有蓝色的一面你跟踪和橙色你跟踪。当你移动你的指针可追踪代码,代码中突出显示紫色和你看到的痕迹对应的代码在另一边。点击它,当您选择突出显示的代码的代码变成了黄色,你甚至可以看到痕迹当你移动你的指针的选择。代码仍然选择,直到您按下Esc或选择不同的代码。改变你跟踪的一面,另一方面选择代码。

探索跟踪报告的例子中。

  1. 在MATLAB代码中,指向在38行循环开始,向下滚动,直到整个循环的观点。

    你看到这个符号,告诉你,高亮显示的MATLAB代码有一个痕迹,不是观点。

    你看到相应的C代码在一个单独的窗口在C代码窗格中。

  2. 在C代码窗格中,向下滚动,直到您看到对应的C代码循环。

  3. 在MATLAB代码中,在不同的语法元素移动你的指针循环。强调变量、表达式和代码块。

    当你移动你的指针表达式,表达式的一部分,不同色调的紫色帮助你找到相关的表达式在相应的C代码。例如,在43行,暂停结束

  4. 在MATLAB代码中,移动你的指针回在38行循环开始。当整个循环紫色高亮显示,通过点击选择它。当你移动你的指针跟踪之外,黄色高亮标识选择跟踪。

    明确的选择,新闻Esc或选择不同的代码。

视图多个痕迹

当代码跟踪不止一个地方在相应的源或生成的代码:

  • 如果你暂停你跟踪代码,代码窗格的顶部,你会看到痕迹。

  • 如果有些痕迹不是在视图中,您看到一个标志告诉你有多少痕迹的观点。

  • 在代码中窗格中,如果您选择您想要跟踪的代码,代码窗格的顶部,你可以选择你想看的跟踪。

在这份报告lpsolve、查看多个痕迹。

  1. 暂停/线36

    顶部的代码窗格中,您可以看到这条线36有两个痕迹。

  2. 选择一行36

    顶部的代码窗格中,您可以看到第一的位置跟踪。

  3. 列出所有痕迹,单击向右箭头的痕迹。

查看跟踪不同的文件

在代码生成报告lpsolve从MATLAB代码,所有痕迹去一个C文件lpsolve.c。如果MATLAB代码跟踪多个C文件,在C代码,您会看到一个如象征提供额外的文件的数量,你可以找到一个痕迹。如果你点击符号,你可以选择你想看的文件。如果你选择MATLAB代码,那么您可以选择你想看的跟踪。

同样,在MATLAB源代码,如一个标志表示强调C代码跟踪多个MATLAB文件。

开关的位置源和生成的代码

  1. 查看lpsolve.c代码的左边窗格中,在生成的文件的列表中,单击lpsolve.c

  2. 查看代码的MATLAB代码左边窗格中,单击一个MATLAB函数,例如,lpsolve

启用工具提示和链接代码

当你不是在跟踪模式:

  • 在MATLAB代码,如果你指向一个变量或表达式,工具提示提供了类型等信息。

  • 在C代码,链接到代码的其他部分如类型或函数定义。

当你在跟踪模式,使MATLAB代码工具提示和C代码链接,按住Ctrl。MATLAB代码提示只能选择MATLAB函数。

在这份报告lpsolve、查看变量的类型信息。

  1. MATLAB源窗格中,选择

  2. 在代码中窗格,按住Ctrl在输入参数和暂停

请注意

在一个麦金塔电脑平台,使用命令关键不是Ctrl

禁用可追溯性

产生一个代码生成报告,不包括可追溯性:

  • 在一个coder.EmbeddedCodeConfig对象,设置EnableTraceability财产

  • MATLAB编码器™应用程序,使代码可追溯性没有

另请参阅

相关的话题