主要内容

通过使用MATLAB功能块集成C代码

如果你有C代码,你想用你的模型金宝app®模型中,您可以调用外部C代码模型使用MATLAB函数块。MATLAB函数使用MATLAB调用C代码块®命令。您还可以从模型生成代码MATLAB函数块调用外部C代码。

从一个调用的C代码金宝app模型

调用外部C代码的仿真软件模型,遵循这些步骤:金宝app

  1. 识别源(。c)和标题(。h)文件包含您想要使用的C代码模型。

  2. 插入一个MATLAB函数块到你的模型。

  3. MATLAB函数块,用coder.ceval函数调用的C代码。通过引用传递数据,使用coder.ref,coder.rref,或coder.wref

  4. 指定的C源文件和头文件模拟目标面板配置参数窗口的。使用双引号中包含头文件,例如,# include“program.h”。如果你需要访问C源和您的工作目录之外的头文件,路径的列表模拟目标窗格中,在包括目录文本框中。

    另外,使用coder.cincludecoder.updateBuildInfo函数来指定源和MATLAB代码中的头文件。开发一个接口与外部代码,您可以使用coder.ExternalDependency类。支持工作流,明白了金宝app导入自定义代码

  5. 测试你的仿真软件模型金宝app正确,并确保它的功能。

  6. 如果你有一个金宝app仿真软件编码器™许可证,您可以生成代码的目标。使用相同的源和代码生成头文件,打开配置参数,导航到代码生成>自定义代码面板,使使用相同的自定义代码设置为模拟目标。你也可以指定不同的源和头文件。

    conditionalize代码为模拟和代码生成执行不同的命令,您可以使用coder.target函数。

使用coder.ceval在一个例子MATLAB函数

这个例子显示了如何调用简单的C程序doubleIt从一个MATLAB函数块。

  1. 创建源文件doubleIt.c在你当前的工作目录。

    # include“doubleIt.h”double doubleIt(double u) { return(u*2.0); }
  2. 创建头文件doubleIt.h在你当前的工作目录。

    的ifndef MYFN # define MYFN双doubleIt(双u);# endif
  3. 创建一个新的仿真软件模型。金宝app将其保存为myModel

  4. 在图书馆浏览器,导航到金宝app>用户定义函数库,并添加一个MATLAB函数块模型。

  5. 双击打开MATLAB功能块编辑器。输入代码调用doubleIt计划:

    函数y = callingDoubleIt (u) y = 0.0;y = coder.ceval (“doubleIt”u);
  6. 连接一个常数块的值3.5的输入端口MATLAB函数块。

  7. 连接一个显示块到输出端口。

    这张图片显示了一个MATLAB功能块输出到显示块。MATLAB函数使用一个常数阻止一个值为3.5作为输入。

  8. 打开配置参数窗口,并导航到模拟目标窗格。

  9. 代码信息选项卡上,单击包括头信息,然后输入# include“doubleIt.h”

    这张图片显示了模拟目标窗格中。#包括“doubleIt的文本。h”已经包含在包含标题部分。

  10. 单击源文件选项卡并输入doubleIt.c。点击好吧

    这张图片显示了模拟目标窗格中。# include doubleIt的文本。c源文件中包含了部分。

  11. 运行仿真。的值7出现在显示块。

控制进口汽车和枚举类型定义

当你调用外部C代码通过使用MATLAB函数块或Stateflow®,您可以控制的进口汽车和枚举类型定义您的模型。金宝app仿真软件可以为您生成类型定义,或者你可以提供一个包含类型定义的头文件。你可以控制这种行为通过切换生成typedef进口总线和枚举类型参数。找到这个参数,打开配置参数窗口中,导航到模拟目标面板,扩大先进的参数部分。

配置模型自动生成类型定义,金宝app使生成typedef进口总线和枚举类型。包括一个自定义的头文件,它定义枚举和总线类型,明确生成typedef进口总线和枚举类型和列表的头文件头文件文本框中。

另请参阅

功能

相关的话题