Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

模型配置参数:代码生成优化

Code Generation > Optimization 类别包括用于提高模型仿真速度和生成代码性能的参数。用于改进所生成代码的模型配置参数需要具备 Simulink® Coder™ 或 Embedded Coder®

参数说明

默认参数行为

在生成的代码中,将数值模块参数转换为常量内联值。

Pass reusable subsystem outputs as (Embedded Coder)

指定可重用子系统如何传递输出。

Remove root level I/O zero initialization (Embedded Coder)

指定是否为设置为零的根级输入端口和输出端口生成初始化代码。

Remove internal data zero initialization (Embedded Coder)

指定是否为设置为零的内部工作结构体(如模块状态和模块输出)生成初始化代码。

Level (Embedded Coder)

选择要应用于生成代码的优化级别。

Priority (Embedded Coder)

优化生成的代码,以提高执行效率、降低内存消耗量或在两者之间实现某种平衡。

Specify custom optimizations (Embedded Coder)

选择此参数可在 Details 部分选择优化参数,而不是应用优化级别。

Use memcpy for vector assignment

通过用 memcpy 替换 for 循环,优化为向量赋值生成的代码。

Memcpy threshold (bytes)

指定用 memcpymemset 函数调用替换生成代码中向量赋值的 for 循环时应满足的最小数组大小(以字节为单位)。

Enable local block outputs

指定模块信号是局部声明还是全局声明。

Reuse local block outputs

指定 Simulink Coder 软件是否重用信号内存。

Eliminate superfluous local variables (Expression folding)

将模块计算折叠成单个表达式。

Reuse global block outputs (Embedded Coder)

重用模块输出的全局内存。

Perform in-place updates for Assignment and Bus Assignment blocks (Embedded Coder)

重用 Bus Assignment 和 Assignment 模块的输入和输出变量(如果可能)。

Reuse buffers for Data Store Read and Data Store Write blocks (Embedded Coder)

删除 Data Store Read 和 Data Store Write 模块的临时缓冲区。直接使用 Data Store Memory 模块(如果可能)。

Simplify array indexing (Embedded Coder)

在以循环方式访问数组时替换数组索引中的乘法运算。

Pack Boolean data into bitfields (Embedded Coder)

指定布尔信号是存储为一位位域还是存储为布尔数据类型。

Bitfield declarator type specifier (Embedded Coder)

指定选择配置参数 Pack Boolean data into bitfields (Embedded Coder) 时使用的位域类型。

Reuse buffers of different sizes and dimensions (Embedded Coder)

通过重用缓冲区来存储不同大小和维度的数据,降低内存消耗。

Optimize global data access (Embedded Coder)

选择全局变量优化。

Optimize block operation order in the generated code (Embedded Coder)

在生成的代码中对模块运算重新排序,以提高代码执行速度。

Use bitsets for storing state configuration

使用位集来减少存储状态配置变量所需的内存量。

Use bitsets for storing Boolean data

使用位集来减少存储布尔数据所需的内存量。

Maximum stack size (bytes)

为模型指定最大堆栈大小(以字节为单位)。

Loop unrolling threshold

指定为其生成 for 循环的最小信号或参数宽度。

Optimize using the specified minimum and maximum values (Embedded Coder)

使用模型中信号和参数的指定最小值和最大值优化生成的代码。

Maximum number of arguments for subsystem outputs

设置要分别传递的子系统输出的最大数量。

Inline invariant signals

将不变信号的符号名转换为常量值。

Remove code from floating-point to integer conversions with saturation that maps NaN to zero

删除用于处理 NaN 值的浮点到整数转换结果的代码。

Use memset to initialize floats and doubles to 0.0

指定是否生成将浮点数据显式初始化为 0.0 的代码。

Remove code from floating-point to integer conversions that wraps out-of-range values

删除用于处理超出范围的浮点数到整数转换结果的绕回代码。

Remove Code from Tunable Parameter Expressions That Saturate Out-of-Range Values (Embedded Coder)

删除可调参数的绕回代码。

Remove code that protects against division arithmetic exceptions (Embedded Coder)

指定是否为整数和定点数据生成防止被零除和 INT_MIN/-1 运算的代码。

Buffer for reusable subsystems通过在可重用子系统边界插入缓冲区来提高可重用性。

Disable incompatible optimizations

指定是否禁用与 Simulink Code Inspector 不兼容的优化。

Base storage type for automatically created enumerations为使用激活状态输出创建的枚举设置存储类型和大小。
Use signal labels to guide buffer reuse (Embedded Coder)对于具有相同标签的信号,代码生成器尝试使用相同的信号内存。
Generate parallel for-loops (Embedded Coder)指定是否应在生成代码中针对 Matlab FunctionMatlab System For Each 模块实现并行 for 循环。
Signal storage reuse指定重用为存储模块输入和输出信号所分配的内存缓冲区,从而降低实时程序的内存需求
Operator to represent Bitwise and Logical Operator blocks (Embedded Coder)指定生成的代码是包含按位运算符还是逻辑运算符,或两者都包含。

相关主题