问题描述
我创建了一个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 文档。
特别注意放置
#define S_FUNCTION_NAME wrapsfcn
与您的主 c/cpp 文件的命名相同。
然后在 Matlab 命令窗口中使用“mex”命令编译 S-Function。您需要安装一个有效的编译器(例如,VS2015 Express 就可以)。接下来,在您的模型中创建一个 S-Function 模块。在 S-Function Name 下,输入我们之前提到的名称,区分大小写。
然后,您就可以开始构建和部署了。
在我的 speedgoat 机器 @ R2020b 中测试。