集成使用MATLAB函数C代码块
从一个仿真软件模型调用C代码金宝app
你可以从仿真软件调用外部C代码金宝app®模型使用一个MATLAB函数块。遵循以下主要步骤:
从现有的C代码组成的源(
。c
)和标题(。h
)文件。在MATLAB函数块,输入MATLAB®调用C代码的代码。使用
coder.ceval
函数。通过引用传递数据,使用coder.ref
,coder.rref
,或coder.wref
。指定C源和模拟的头文件模拟目标面板的模型配置参数对话框。使用双引号中包含头文件,例如,
# include“program.h”
。如果你需要访问C源和您的工作目录之外的头文件,路径的列表模拟目标窗格中,在包括目录文本框中。另外,使用
coder.cinclude
和coder.updateBuildInfo
函数来指定源和MATLAB中的头文件代码。开发一个接口与外部代码,您可以使用coder.ExternalDependency
类。支持工作流,明白了金宝app导入自定义代码。测试你的仿真软件模型金宝app正确,并确保它的功能。
如果你有一个金宝app仿真软件编码器™许可,使用这种方法可以生成目标代码。使用相同的源和代码生成头文件,点击使用相同的自定义代码设置为模拟目标在代码生成>自定义代码窗格。你也可以指定不同的源和头文件。
conditionalize代码为模拟和代码生成执行不同的命令,您可以使用
coder.target
函数。
使用coder.ceval
在MATLAB函数块
这个例子显示了如何调用简单的C程序doubleIt
从一个MATLAB函数块。
创建源文件
doubleIt.c
在你当前的工作目录。# include“doubleIt.h”double doubleIt(double u) { return(u*2.0); }
创建头文件
doubleIt.h
在你当前的工作目录。的ifndef MYFN # define MYFN双doubleIt(双u);# endif
创建一个新的仿真软件模型。金宝app将其保存为
myModel
。在库浏览器,从用户定义函数,添加一个MATLAB函数块模型和双击打开编辑器。
输入代码调用
doubleIt
计划:函数y = callingDoubleIt (u) y = 0.0;y = coder.ceval (“doubleIt”u);
连接一个常数块的价值
3.5
的输入端口MATLAB函数块。一个显示块连接到输出端口。
在模型配置参数对话框,打开模拟目标窗格。
在插入自定义生成C代码部分中,选择头文件从列表中,并输入
# include“doubleIt.h”
在头文件文本框中。在额外的构建信息部分中,选择源文件从列表中,输入
doubleIt.c
在源文件文本框,并点击好吧。运行仿真。的值
7
出现在显示块。
控制进口汽车和枚举类型定义
这个过程只适用于模拟。
金宝app仿真软件生成代码MATLAB函数块和Stateflow®模拟模型。当你调用外部C代码使用MATLAB函数块或Stateflow,您可以控制进口汽车和枚举类型定义的模型模拟。
金宝app仿真软件可以生成类型定义,或者你可以提供一个包含类型定义的头文件。你使用来控制这一行为生成typedef进口总线和枚举类型复选框的模型配置参数对话框。
包括自定义头文件定义枚举和总线类型:
清除生成typedef进口总线和枚举类型复选框。
的头文件列表模拟目标窗格中,在头文件文本框中。
配置模型自动生成类型定义:金宝app
选择生成typedef进口总线和枚举类型复选框。
没有头文件列表,对应于公共汽车或枚举。
另请参阅
coder.BuildConfig
|coder.ceval
|coder.cinclude
|coder.ExternalDependency
|coder.ref
|coder.rref
|coder.target
|coder.updateBuildInfo
|coder.wref