您可以从Simulink调用外部C代码金宝app®模型使用A.Matlab功能堵塞。遵循这些高级步骤:
从源组成的现有C代码开始(. c
)和标题(. h
)文件。
在Matlab功能块,输入MATLAB®调用C代码的代码。使用coder.ceval
功能。通过引用通过数据,使用编码器.REF.
那Coder.Rref.
, 或者编码器.Wref.
。
指定用于模拟的C源和头文件模拟目标窗格的模型配置参数对话框。例如,使用双引号包括标题文件,例如,#include“program.h”
。如果您需要访问工作文件夹外部的C源和头文件,请列出该路径模拟目标窗格,在包括目录文本框。
或者,使用编码器.Cinclude.
和Coder.updateBuildInfo.
函数来指定MATLAB代码中的源文件和头文件。要开发外部代码的接口,可以使用编码器.ExternalDependency.
班级。要查看支持哪个工作流程,请参阅金宝app导入自定义代码。
测试Simulink金宝app模型,并确保其正确运行。
如果你有一个金宝app仿真软件编码器™许可证,您可以使用此方法生成针对目标的代码。要使用代码生成的相同源和头文件,请单击使用与模拟目标相同的自定义代码设置在代码>自定义代码窗格。您还可以指定不同的源文件和头文件。
要调整您的代码来执行用于模拟和代码生成的不同命令,可以使用编码器.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 double double dubpit(double u);#万一
创建一个新的Simulin金宝appk模型。将其保存为mymodel.
。
在图书馆浏览器, 从用户定义的函数,添加A.Matlab功能块到模型并双击块以打开编辑器。
输入调用的代码doubleIt
程序:
函数y = callingdoubleit(u)y = 0.0;y = coder.ceval(“doubleIt”,U);
连接一个值为的Constant块3.5
到输入端口Matlab功能堵塞。
将显示块连接到输出端口。
在模型配置参数对话框,打开模拟目标窗格。
在在生成的中插入自定义C代码部分,选择头文件从列表中,然后输入#include“doubleit.h”
在头文件文本框。
在其他构建信息部分,选择源文件从列表中,输入doubleIt.c
在源文件文本框,单击好吧。
运行模拟。价值7.
出现在显示块中。
本程序仅适用于模拟。
金宝appSimulink生成代码Matlab功能块和州流®模拟模型。使用外部C代码时使用Matlab功能块或equentFlow,您可以控制模型模拟中导入总线和枚举的类型定义。
金宝appSimulink可以生成类型定义,或者您可以提供包含类型定义的标题文件。您使用的是控制此行为为导入总线和枚举类型生成类型的类型复选框中的模型配置参数对话框。
要包含定义枚举和总线类型的自定义头文件:
清除为导入总线和枚举类型生成类型的类型复选框。
列表中的头文件模拟目标窗格,在头文件文本框。
要配置Simulink以自金宝app动生成类型定义:
选择为导入总线和枚举类型生成类型的类型复选框。
不要列出与总线或枚举对应的标题文件。
编码器.BuildConfig
|coder.ceval
|编码器.Cinclude.
|编码器.ExternalDependency.
|编码器.REF.
|Coder.Rref.
|编码器.Target.
|Coder.updateBuildInfo.
|编码器.Wref.