使用 MATLAB Coder App生成MEX函数

目录

使用 MATLAB Coder App 生成 MEX 函数的工作流

使用 MATLAB Coder App 生成 MEX 函数

配置工程设置

编译 MATLAB Coder 工程


使用 MATLAB Coder App 生成 MEX 函数的工作流

步骤操作详细信息
1

设置 MATLAB® Coder™ 工程。

设置MATLAB Coder工程
2

指定编译配置参数。将 Build type 设置为 “MEX”。

配置工程设置
3

编译工程。

编译MATLAB Coder工程

        MATLAB Online™ 不支持 MATLAB Coder App。要在 MATLAB Online 中生成 MEX 函数,可以使用codegen命令。

使用 MATLAB Coder App 生成 MEX 函数

        该例子说明如何使用 MATLAB Coder App 从 MATLAB 代码生成 MEX 函数。

创建入口函数

        在一个本地可写文件夹中,创建 MATLAB 文件 mcadd.m,其中包含:

function y = mcadd(u,v) %#codegen
y = u + v;

创建测试文件

        在同一本地可写文件夹中,创建 MATLAB 文件 mcadd_test.m,该文件调用具有示例输入的 mcadd。示例输入是类型为 int16 的标量。

function y = mcadd_test
y = mcadd(int16(2), int16(3));

打开 MATLAB Coder App

        在 MATLAB 工具条的 App 选项卡上,点击Code Generation下的MATLAB Coder App图标。该App会打开Select Source Files页面。

指定源文件

  1. Select Source Files页面中,键入或选择入口函数 mcadd 的名称。

    该 App 将使用默认名称 mcadd.prj 创建一个工程。

  2. 点击 Next 以转到 Define Input Types 步骤。该 App 将分析函数以查找编码问题并确定代码生成就绪情况。如果 App 发现问题,它将打开 Review Code Generation Readiness 页面,可以在其中查看和解决问题。在此示例中,由于 App 没有检测到问题,因此将打开 Define Input Types 页面。

定义输入类型

        由于C使用静态类型,MATLAB Coder 必须在编译时确定 MATLAB 文件中所有变量的属性。必须指定所有入口函数输入的属性。根据入口函数输入的属性,MATLAB Coder 可以推断 MATLAB 文件中所有变量的属性。

        指定 MATLAB Coder 用来自动定义 u 和 v 的类型的测试文件 mcadd_test.m:

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

  2. 点击 Autodefine Input Types

    测试文件 mcadd_test.m 使用示例输入类型调用入口函数 mcadd。MATLAB Coder推断输入 u和v为 int16(1x1)。

  3. 点击Next以转到Check for Run-Time Issues步骤。

检查运行时问题

        Check for Run-Time Issues 步骤从入口函数生成 MEX 文件,然后运行MEX函数并报告问题。此步骤是可选的。不过,建议最好执行此步骤。可以检测并解决在生成的C代码中更难诊断出来的运行时错误。

  1. 要打开 Check for Run-Time Issues对话框,请点击 Check for Issues 箭头 

    App使用mcadd_test 填充测试文件字段,该测试文件用于定义输入类型。

  2. 点击 Check for Issues

    App 将生成一个 MEX 函数。它运行测试文件,将对 mcadd 的调用替换为对 MEX 函数的调用。如果 App 在 MEX 函数生成或执行过程中检测到问题,它将提供警告和错误消息。可以点击这些消息,导航到有问题的代码并修复问题。在本示例中,App 未检测到问题。

  3. 点击 Next 以转到 Generate Code 步骤。

生成 MEX 函数

  1. 要打开 Generate 对话框,请点击 Generate 箭头 

  2. 在 Generate 对话框中,将 Build type 设置为 “MEX”,将 Language 设置为C。对其他工程编译配置设置使用默认值。

  3. 点击 Generate

    App 指示代码生成成功。它在页面左侧显示源 MATLAB 文件和生成的输出文件。在 Variables 选项卡上,它显示有关 MATLAB 源变量的信息。在 Target Build Log 选项卡上,它会显示编译日志,包括编译器警告和错误。

    MATLAB Coder 编译工程,并默认在当前文件夹中生成 MEX 函数 mcadd_mex。MATLAB Coder 还会在名为 codegen/mex/mcadd 的子文件夹中生成其他支持文件。MATLAB Coder 使用 MATLAB 函数的名称作为生成文件的根名称。它为 MEX 文件创建一个特定于平台的扩展名。

  4. 要查看代码生成报告,请点击 View Report

  5. 点击 Next 打开 Finish Workflow 页面。

查看 Finish Workflow 页面

        Finish Workflow 页面指示已成功生成代码,还提供工程摘要以及指向生成的输出的链接。

配置工程设置

要打开工程设置对话框,请执行下列操作:

  1. 要打开 Generate 对话框,请点击 Generate 箭头 

  2. 点击 More settings

        要更改工程设置,请点击包含要更改的设置的选项卡。例如,要更改 Saturate on integer overflow 设置,请点击 Speed 选项卡。

        MEX 函数使用一组与库和可执行文件不同的配置参数。将输出类型从 “MEX Function” 更改为 “Source Code ”“Static Library”、“Dynamic Library” 或 “Executable” 时,请验证这些设置。

        某些配置参数与 MEX 和独立代码生成相关。如果在输出类型为 “MEX Function” 时启用这些参数中的任何参数,并且要在 C/C++ 代码生成中也使用相同的设置,则必须为 “C/C++ Static Library”、“C/C++ Dynamic Library” 和 “C/C++ Executable” 再次启用它。

编译 MATLAB Coder 工程

        要使用指定的设置编译工程,请在 Generate Code 页面上点击 Generate。当 MATLAB Coder App 编译工程时,它会显示编译进度。编译完成后,App 会在 Target Build Log 选项卡上提供有关编译的详细信息。

        如果启用了代码生成报告或发生编译错误,则 App 会生成报告。该报告提供有关最近编译的详细信息,并提供指向该报告的链接。

        要查看报告,请点击 View report 链接。该报告提供指向 MATLAB 代码和生成的 C/C++ 文件的链接,并提供 MATLAB 代码中变量的编译时类型信息。如果发生编译错误,报告将列出错误和警告。

另请参阅

  • 配置编译设置

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值