C Caller
在 Simulink 中集成 C 代码
库:
Simulink /
User-Defined Functions
描述
C Caller 模块将您的外部 C 代码集成到 Simulink® 中。此模块导入并列出您的外部 C 代码中的函数,并使您能够选择已解析的 C 函数以集成到您的 Simulink 模型中。
使用库浏览器 > Simulink > 用户定义函数将 C Caller 模块提取到 Simulink 画布上。
然后,点击模块对话框上的
图标。这将打开配置参数对话框。在配置参数对话框内部,转至仿真目标窗格,并使用代码信息选项卡中的参数来定义源代码和任何支持文件。要浏览源代码中的函数定义,请使用
图标。有关定义源代码和支持文件的详细信息,请参阅Specify and Configure Custom C/C++ Code。
要更改您的源代码和支持文件,请在配置参数对话框中的仿真目标窗格的代码信息选项卡中使用相同的参数。更改源代码和支持文件后,通过点击模块对话框上的
按钮来刷新函数列表。
示例
限制
初始化/终止自定义代码设置 - 如果您需要为自定义代码分配和释放内存,请在自定义代码设置的初始化函数和终止函数字段中插入 allocate 和 deallocate,或者使用 C Function 模块。
复数数据支持 - 模块不支持 Simulink 中的复数数据类型。
变量参量 - 不支持 C 语言中的变量参量,例如
int sprintf(char *str, const char *format, ...)。C++ 语法 - 模块不直接支持原生 C++ 语法。您需要编写 C 函数包装器来与 C++ 代码对接。
Simulink Test™ 观测器支持 - 从 R2026a 开始,您可以在 C Caller 模块中使用 Observer Port 和 Observer Reference 模块来观察导出的全局变量。您无法使用这些模块来观察静态全局变量或 N 维矩阵的全局变量。
端口
输入
输出
参数
模块特性
详细信息
提示
要测试包含 C Caller 模块的模型,请参阅测试集成的 C 代码 (Simulink Test)。
如果模型具有自定义代码,则在更新或运行模型后,
slprj文件夹可能会因加载的自定义代码仿真可执行文件而锁定。当文件夹被锁定时,您无法删除它。要卸载可执行文件并解锁slprj文件夹,请使用clear mex命令。请参阅clear。
扩展功能
版本历史记录
在 R2018b 中推出另请参阅
模块
- C Function | MATLAB Function | MATLAB System | S-Function | S-Function Builder | Observer Reference (Simulink Test) | Observer Port (Simulink Test)








