我的工作场所使用 MATLAB 和子产品 Simulink、Realtime workshop (RTW)、RTW Embedded Coder。我们有一个大型 simulink 模型,它被编译为 C,然后编译为一个目标文件,用于加载到嵌入式目标上。 整个编译过程耗时~3h,比较长,主要是simulink模型生成的C文件的编译和链接。
删除一个特定的子系统可将编译时间缩短至 30 分钟,并且由于该子系统不会经常更改,我计划用 C 对其进行编码,然后将其转换为 MEX,并在主模型中使用 MEX 文件。
该技术会减少编译时间吗? 我应该研究另一种技术吗?
编辑:我认为解决方案大致是: 从有问题的子系统生成 C 将其编译为某种对象、库 将其包含在模型中(但我对模拟不感兴趣,它只有输入) 将其包含在构建过程中,大概是在编译其余代码后进行链接
最佳答案
您可以尝试将有问题的子系统放入另一个模型并使用模型引用。您可以使用 Simulink.SubSystem.convertToModelReference 将子系统转换为模型 block .
模型引用具有增量代码生成,因此只要模型不发生变化,Simulink 就不会为引用模型重新生成或重新编译代码。
关于c - 这种技术会减少 MATLAB 实时研讨会编码器的编译时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013338/