内存使用情况
通过指定代码生成器是局部定义变量还是全局定义变量以及数据如何传递给子系统函数来控制内存消耗。修改配置设置以减少用于存储数据的内存量。
代码生成器通过组合控制流构造、删除死代码路径和对计算结果没有影响的块代码来减少ROM消耗。您可以通过删除可能不需要的代码(如初始化代码、重置和禁用功能以及防御代码)来进一步减少ROM消耗。
主题
局部或全局定义变量
控制允许的最大堆栈大小,以控制在生成的代码中是本地定义数据还是全局定义数据。
启用能够重用为信号分配的内存的参数。
在可能的情况下,代码生成器将块输出声明为局部变量,以便可以重用这些变量。
代码生成器尝试重用全局变量。
选择全局变量引用优化来满足您的内存使用和执行速度要求。
代码生成器通过将可重用的子系统输出作为单独的参数传递,而不是作为指向存储在全局内存中的结构的指针,消除了从局部变量返回到全局块I/O结构的数据副本。
为了减少不可重用子系统的全局内存,可以生成一个通过参数而不是全局变量传递数据的函数接口。
减少代码大小
控制是否在生成的代码中初始化内部数据(块状态和块输出)和外部数据(根导入和输出的值为零)。
对于包含模型引用层次结构的基于ert的系统,从生成的代码中删除reset和disable函数的不可达(死代码)实例。
在生成的代码中使用不变信号的数值,而不是它们的符号名称。
通过内联块参数的文字数值来减少全局RAM的使用。
代码生成器通过组合来优化生成的代码if - else
具有相同条件的语句。
代码生成器从生成的代码中消除死的(即未使用的)代码路径。
代码生成器通过删除不影响计算结果的代码来提高执行速度并减少ROM消耗。
代码生成器使用数据依赖分析来组合为
构造以减少静态代码大小和运行时分支。
减少存储数据的内存
重用具有不同大小和形状的矩阵的缓冲区。
减少存储状态配置变量和的内存量布尔
变量。
优化代码生成器为运行时间或绝对时间分配的内存。
代码生成器通过将逻辑信号存储为来优化生成的代码布尔
数据类型。
代码生成器通过将布尔数据打包到1位的位域中来减少RAM消耗。
代码生成器通过用局部变量替换临时局部数组来减少堆栈内存。
生成浮点数据类型仅为单精度的代码,例如,针对单精度处理器。
要生成更高效的代码,请将参数数据类型与信号数据类型匹配,或者将参数存储在较小的数据类型中。
使用逻辑操作符或位操作符或这两种操作符的组合生成代码。