主要内容

为多个入口点函数生成代码

一个入口点函数是一个顶级MATLAB®您生成代码的函数。对于许多应用程序,你可能只需要为一个单一的入口点函数生成代码。你也可以生成C / c++代码同时从多个入口点函数。通过使用多个入口点函数,您可以:

  • 产生多功能C / c++库包含的功能水平比如果你为每个入口点函数生成独立的库。

  • 更有效地生成代码,股票代码当多个入口点函数依赖于相同的子功能。

  • 生成库函数,可以使用共享内存进行通信,例如,当他们使用相同的全局变量。

作为一项最佳实践,生成一个墨西哥人在MATLAB函数来验证入口点交互生成C / c++库。

为多个入口点函数生成代码

为多个入口点函数生成代码,使用的语法codegen参考页面。默认情况下,墨西哥人代码生成,codegen:

  • 生成一个墨西哥人函数在当前文件夹。只有一个墨西哥人当你指定多个入口点函数生成函数。打电话给从墨西哥人函数生成一个单一的入口点函数,看看从墨西哥人函数调用一个单一的入口点函数

  • 名墨西哥人的功能的名字_mex的名字是第一个入口点函数的名字从一个吗字母顺序排列秩序。

  • 将生成的文件存储在子文件夹codegen /墨西哥人/子文件夹子文件夹是第一个入口点函数的名称吗从左到右订单(后进入codegen命令)。

您可以指定输出文件名和文件夹名称使用- o选择:

codegen- omyOutputFileNamefun1fun2

在这种情况下,codegen生成一个墨西哥人命名函数myOutputFileName在当前文件夹并将生成的文件存储在子文件夹codegen /墨西哥人/ myOutputFileName

例如:两个入口点函数生成代码

为两个入口点函数,生成一个墨西哥人的功能ep1ep2。函数ep1需要一个输入和ep2需要两个输入。使用- o选项,生成的墨西哥人函数名称sharedmex:

codegen- omySharedMexep1arg游戏{单(0)}ep2arg游戏{0,0 (1024)}

codegen生成一个墨西哥人命名函数mySharedMex.mex在当前文件夹并将生成的文件存储在子文件夹codegen /墨西哥人/ mySharedMex

生成并编译独立的库代码,使用配置:自由选择。

codegen配置:自由- omySharedLibep1arg游戏单(0)ep2arg游戏{0,0 (1024)}

codegen命令生成的C / c++库代码codegen / lib / mySharedLib文件夹中。

使用输出类型从一个入口点函数作为输入类型到另一个地方,看到的通过一个入口点函数的输出作为输入。信息查看入口点函数的代码生成报告,明白了代码生成报告

从墨西哥人函数调用一个单一的入口点函数

假设您有一个墨西哥人的功能myMex从多个入口点函数,生成fun1,fun2、…funN。你可以叫一个单一的入口点函数,fun_i通过使用这种语法:

myMex (“fun_i”param1, paramM . .)

这里的MATLAB函数签名fun_iparamM fun_i (param1 . .)

例如,考虑墨西哥人功能,mySharedMex,入口点函数ep1ep2。打电话给ep1一个输入参数u,输入:

mySharedMex (“ep1”,u)

打电话给ep2与输入参数vx,输入:

mySharedMex (“ep2”、v、x)

生成代码的多个入口点函数使用MATLAB编码器应用程序

这个例子展示了如何为多个入口点函数使用生成代码MATLAB编码器™应用程序。

创建的入口点函数

  1. 在当地可写的文件夹中,创建一个MATLAB文件,ep1.m,包含:

    函数y = ep1 (u)% # codegeny = u;

  2. 在同一个地方可写的文件夹中,创建一个MATLAB文件,ep2.m,包含:

    函数y = ep2 (u, v)% # codegeny = u + v;

创建测试文件

的文件夹,其中包含ep1.mep2.m创建一个MATLAB文件,ep_test.m,电话ep1ep2与输入示例。

函数[y, y₁] = ep_test y = ep1(单(2));日元= ep2(双(3),双(4));

打开MATLAB编码器应用程序

在MATLAB将来发布应用程序选项卡,在代码生成,单击MATLAB编码器应用程序图标。

指定源文件

  1. 选择源文件页面,输入或选择的入口点函数的名称ep1

    应用程序创建了一个项目使用默认名称ep1.prj在当前文件夹。为了避免代码生成错误,您必须保存项目文件和所有入口点MATLAB函数文件在同一文件夹中。

  2. 添加ep2入口点函数的列表,点击添加入口点函数。输入或选择的入口点函数的名称ep2

  3. 定义输入类型一步,单击下一个。应用分析功能编码问题和代码生成。如果应用程序标识问题,它打开了审查代码生成准备页面,您可以查看并修复问题。在这个例子中,因为应用程序没有检测问题,它打开了定义输入类型页面。

定义输入类型

因为C使用静态类型,在编译时,MATLAB编码器必须确定在MATLAB文件中所有变量的属性。您必须指定所有入口点函数输入的属性。从入口点函数输入的属性,MATLAB编码器可以推断在MATLAB文件中所有变量的属性。

指定一个测试文件MATLAB编码器可以使用自动定义类型:

  1. 输入或选择测试文件ep_test.m

  2. 点击Autodefine输入类型

    测试文件,ep_test.m的入口点函数,调用ep1ep2输入类型的示例。MATLAB编码器推断,ep1、输入u单(1 x1)。为ep2,uv双(1 x1)

  3. 检查运行时问题一步,单击下一个

检查运行时问题

检查运行时问题一步生成一个墨西哥人文件从你的入口点函数,墨西哥人功能,运行和报告问题。这一步是可选的。然而,这是一个最佳实践来执行这一步骤。可以检测并修复运行时错误,很难诊断在生成的C代码。

  1. 打开检查运行时问题对话框中,单击检查问题箭头

    应用填充测试文件字段ep_test,测试文件用于定义的输入类型。

  2. 点击检查问题

    应用程序生成一个墨西哥人命名函数ep1_mexep1ep2。它运行测试文件ep_test更换要求ep1ep2对墨西哥人的调用函数。如果应用程序检测到问题在墨西哥人一代或执行函数,它提供了警告和错误消息。导航到有问题的代码并修复这个问题,点击这些消息。在本例中,应用程序并不检测问题。

  3. 生成代码一步,单击下一个

生成墨西哥人的功能

  1. 打开生成对话框中,单击生成箭头

  2. 构建类型墨西哥人

  3. 验证输出文件的名字ep1_mex。默认情况下,应用程序使用的名字按字母顺序的第一个入口点函数。

  4. 点击生成

    MATLAB编码器构建项目。它生成一个墨西哥人函数,ep1_mex在当前文件夹。MATLAB编码器还生成其他支持文件在一个文件夹金宝appcodegen /墨西哥人/ ep1_mexMATLAB编码器使用MATLAB函数的名称作为根生成的文件。它为墨西哥人创建一个特定于平台的扩展文件,所述命名约定

    现在,您可以测试您的墨西哥人在MATLAB函数。看到从墨西哥人函数调用一个单一的入口点函数

    如果您生成一个静态库ep1ep2,MATLAB编码器建立项目和生成一个C库,ep1在默认文件夹金宝app,支持文件,codegen / lib / ep1

另请参阅

|

相关的话题