c - 这种技术会减少 MATLAB 实时研讨会编码器的编译时间吗?

标签 c matlab compiler-construction simulink mex

我的工作场所使用 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/

相关文章:

matlab - 评估 Matlab 符号函数

matlab - 在matlab中获取第二个最大元素

assembly - 使用较小的寄存器有什么好处,例如al 与 eax/rax

c++ - python 中带有嵌套 if 的智能自动 C 代码生成器

c++ - 虚函数歧义求解

c - 保护开源软件可执行文件中的公司数据

c - 用cudaEvent_t测CPU时间靠谱吗?

c - 一维和二维数组

c - 希望我的客户端程序通过 IPv4 或 IPv6 连接

java - 需要分析一组包含0和正整数的 vector