主要内容

集成使用MATLAB函数C代码块

从一个仿真软件模型调用C代码金宝app

你可以从仿真软件调用外部C代码金宝app®模型使用一个MATLAB函数块。遵循以下主要步骤:

  1. 从现有的C代码组成的源(。c)和标题(。h)文件。

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

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

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

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

  5. 如果你有一个金宝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. 库浏览器,从用户定义函数,添加一个MATLAB函数块模型和双击打开编辑器。

  5. 输入代码调用doubleIt计划:

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

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

  8. 模型配置参数对话框,打开模拟目标窗格。

  9. 插入自定义生成C代码部分中,选择头文件从列表中,并输入# include“doubleIt.h”头文件文本框中。

  10. 额外的构建信息部分中,选择源文件从列表中,输入doubleIt.c源文件文本框,并点击好吧

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

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

这个过程只适用于模拟。

金宝app仿真软件生成代码MATLAB函数块和Stateflow®模拟模型。当你调用外部C代码使用MATLAB函数块或Stateflow,您可以控制进口汽车和枚举类型定义的模型模拟。

金宝app仿真软件可以生成类型定义,或者你可以提供一个包含类型定义的头文件。你使用来控制这一行为生成typedef进口总线和枚举类型复选框的模型配置参数对话框。

包括自定义头文件定义枚举和总线类型:

  1. 清除生成typedef进口总线和枚举类型复选框。

  2. 的头文件列表模拟目标窗格中,在头文件文本框中。

配置模型自动生成类型定义:金宝app

  1. 选择生成typedef进口总线和枚举类型复选框。

  2. 没有头文件列表,对应于公共汽车或枚举。

另请参阅

||||||||

相关的例子

更多关于