通过消除生成代码中的数据副本,减少RAM和ROM的消耗并提高代码执行速度。代码生成器消除了一些数据副本。您可以通过调整某些模型参数设置,为MATLAB函数块的输入和输出参数指定相同的名称,以及使用Simulink信号指定重用来消除其他数据副本。金宝app
代码生成器通过将可重用的子系统输出作为单独的参数而不是作为指向存储在全局内存中的结构的指针传递,消除了从局部变量返回到全局块I/O结构的数据拷贝。
代码生成器将块计算折叠到一个表达式中,而不是为模型中的每个块生成单独的代码语句和存储声明。
代码生成器尝试重用全局变量。
在可能的情况下,代码生成器将块输出声明为局部变量,以便它可以潜在地重用这些变量。
代码生成器通过尝试替换来优化为向量信号分配生成的代码为
循环控制元素赋值和memcpy
带有指针赋值的函数调用。
代码生成器通过存储进入根输出端口的信号作为全局变量来消除与根输出端口相关的代码和数据存储。
在生成的代码中使用不变信号的数值而不是它们的符号名。
代码生成器试图消除数据存储读和数据存储写块的数据副本。
对于包含总线分配块,如果可能的话,代码生成器对块的输入和输出使用相同的变量。
对生成的代码中的块操作重新排序,以消除临时变量和相关的数据副本。
如果您的模型具有删除数据副本的最佳参数设置,那么您可能能够通过使用信号标签删除额外的数据副本。
选择全局变量引用优化,以满足内存使用和执行速度要求。
跨MATLAB函数块重用缓冲区。
使用Simu金宝applink信号对象为路径中的多个信号指定缓冲区重用,该路径可能包括根输入和输出端口、延迟块和单元延迟块。
模型总线以最大化生成代码的效率。