通过使用MATLAB功能块集成C代码
如果你有C代码,你想用你的模型金宝app®模型中,您可以调用外部C代码模型使用MATLAB函数块。MATLAB函数使用MATLAB调用C代码块®命令。您还可以从模型生成代码MATLAB函数块调用外部C代码。
从一个调用的C代码金宝app模型
调用外部C代码的仿真软件模型,遵循这些步骤:金宝app
识别源(
。c
)和标题(。h
)文件包含您想要使用的C代码模型。插入一个MATLAB函数块到你的模型。
在MATLAB函数块,用
coder.ceval
函数调用的C代码。通过引用传递数据,使用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
。在图书馆浏览器,导航到金宝app>用户定义函数库,并添加一个MATLAB函数块模型。
双击打开MATLAB功能块编辑器。输入代码调用
doubleIt
计划:函数y = callingDoubleIt (u) y = 0.0;y = coder.ceval (“doubleIt”u);
连接一个常数块的值
3.5
的输入端口MATLAB函数块。连接一个显示块到输出端口。
打开配置参数窗口,并导航到模拟目标窗格。
在代码信息选项卡上,单击包括头信息,然后输入
# include“doubleIt.h”
。单击源文件选项卡并输入
doubleIt.c
。点击好吧。运行仿真。的值
7
出现在显示块。
控制进口汽车和枚举类型定义
当你调用外部C代码通过使用MATLAB函数块或Stateflow®,您可以控制的进口汽车和枚举类型定义您的模型。金宝app仿真软件可以为您生成类型定义,或者你可以提供一个包含类型定义的头文件。你可以控制这种行为通过切换生成typedef进口总线和枚举类型参数。找到这个参数,打开配置参数窗口中,导航到模拟目标面板,扩大先进的参数部分。
配置模型自动生成类型定义,金宝app使生成typedef进口总线和枚举类型。包括一个自定义的头文件,它定义枚举和总线类型,明确生成typedef进口总线和枚举类型和列表的头文件头文件文本框中。