主要内容

内存使用情况

减少生成代码所使用的RAM、ROM和堆栈空间

通过指定代码生成器是局部定义变量还是全局定义变量以及数据如何传递给子系统函数来控制内存消耗。修改配置设置以减少用于存储数据的内存量。

代码生成器通过组合控制流构造、删除死代码路径和对计算结果没有影响的块代码来减少ROM消耗。您可以通过删除可能不需要的代码(如初始化代码、重置和禁用功能以及防御代码)来进一步减少ROM消耗。

主题

局部或全局定义变量

自定义堆栈空间分配

控制允许的最大堆栈大小,以控制在生成的代码中是本地定义数据还是全局定义数据。

减少信号的内存使用

启用能够重用为信号分配的内存的参数。

在生成的代码中启用和重用本地块输出

在可能的情况下,代码生成器将块输出声明为局部变量,以便可以重用这些变量。

重用生成代码中的全局块输出

代码生成器尝试重用全局变量。

优化全局变量使用

选择全局变量引用优化来满足您的内存使用和执行速度要求。

通过传递可重用的子系统输出作为单独的参数来优化生成的代码

代码生成器通过将可重用的子系统输出作为单独的参数传递,而不是作为指向存储在全局内存中的结构的指针,消除了从局部变量返回到全局块I/O结构的数据副本。

减少不可重用子系统函数中的全局变量

为了减少不可重用子系统的全局内存,可以生成一个通过参数而不是全局变量传递数据的函数接口。

减少代码大小

删除零初始化代码

控制是否在生成的代码中初始化内部数据(块状态和块输出)和外部数据(根导入和输出的值为零)。

从生成的代码中删除重置和禁用函数

对于包含模型引用层次结构的基于ert的系统,从生成的代码中删除reset和disable函数的不可达(死代码)实例。

内联不变信号

在生成的代码中使用不变信号的数值,而不是它们的符号名称。

块参数的内联数值

通过内联块参数的文字数值来减少全局RAM的使用。

通过合并冗余的If-Else语句来优化生成的代码

代码生成器通过组合来优化生成的代码if - else具有相同条件的语句。

消除生成代码中的死代码路径

代码生成器从生成的代码中消除死的(即未使用的)代码路径。

删除对计算结果没有影响的代码块

代码生成器通过删除不影响计算结果的代码来提高执行速度并减少ROM消耗。

通过组合多个for构造来优化生成的代码

代码生成器使用数据依赖分析来组合构造以减少静态代码大小和运行时分支。

减少存储数据的内存

重用不同大小和尺寸的缓冲区

重用具有不同大小和形状的矩阵的缓冲区。

减少布尔和状态配置变量的内存使用

减少存储状态配置变量和的内存量布尔变量。

优化时间计数器的内存使用

优化代码生成器为运行时间或绝对时间分配的内存。

使用逻辑信号的布尔数据优化生成的代码

代码生成器通过将逻辑信号存储为来优化生成的代码布尔数据类型。

通过将布尔数据打包到位域中来优化生成的代码

代码生成器通过将布尔数据打包到1位的位域中来减少RAM消耗。

矢量运算优化

代码生成器通过用局部变量替换临时局部数组来减少堆栈内存。

为嵌入式应用程序指定单精度数据类型

生成浮点数据类型仅为单精度的代码,例如,针对单精度处理器。

通过为块参数指定数据类型生成高效代码

要生成更高效的代码,请将参数数据类型与信号数据类型匹配,或者将参数存储在较小的数据类型中。

生成代码中的控制操作符类型

使用逻辑操作符或位操作符或这两种操作符的组合生成代码。