在Simulink Real-Time中的M文件S函数中使用C-Mex函数

问题描述

我创建了一个Level-2 M文件S函数,在内部调用C MEX函数。这在正常的simulink中可以正常工作,但是可以将其部署到speedgoat实时PC上吗?我有C-MEX函数的源代码。

如果是,那么需要采取什么步骤?

我有mex文件的原始C-Source(最初来自Matlab文件交换)。

解决方法

按照此处的步骤创建 C-Mex S-Function。这不是一份全面的指南,因此如果您有任何疑问,请参阅有关 Level 2 C-Mex S-Functions 的大量 Mathworks 文档。

Creating a C-Mex S-Function

特别注意放置

#define S_FUNCTION_NAME wrapsfcn

与您的主 c/cpp 文件的命名相同

然后在 Matlab 命令窗口中使用“mex”命令编译 S-Function。您需要安装一个有效的编译器(例如,VS2015 Express 就可以)。接下来,在您的模型中创建一个 S-Function 模块。在 S-Function Name 下,输入我们之前提到的名称,区分大小写。

然后,您就可以开始构建和部署了。

在我的 speedgoat 机器 @ R2020b 中测试。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...