ZHCAE84 July 2024
通过在 Simulink 窗口的 Hardware 选项卡下选择 Hardware settings 选项,打开模型配置参数。代码优化配置可在 Optimization 选项卡的 Code Generation 下拉列表中找到,如图 3-2 中所示。
为确保针对 C2000 生成最佳代码而要进行的配置如表 3-1 所示。
Simulink 选项卡 | 具体设置 | 默认配置 | 优化配置 |
---|---|---|---|
Code Generation | Build configuration | Faster Builds | Faster Runs |
Prioritized objectives | Unspecified | Execution efficiency | |
Optimization | Priority | Balance RAM and speed | Speed |
Specify custom optimization | On | Off | |
Default parameter behavior | Tunable | Inlined | |
Efficient Map of Float to Int | Off | On | |
Interface | Support absolute time | On | Off |
Support complex | On | Off | |
Support non finite | On | Off | |
Math and Data Types | Life span | auto | 1 |
通过在 Model configuration 部分中选择适当的选项,可以手动配置上述所有配置,如图 3-2 所示。或者,可以将包含上述配置的 MATLAB .m 脚本与应用示例集成,以确保调用优化的配置。
名为 TIDM_02012_F280039C_MBD_optimconfigs.m 的 TIDM_2012_F280039_MBD 示例中提供了与该应用集成的脚本。
代码生成:
为“build configuration”选择“faster runs”可以确保 C2000 工具链配置更新为使用编译器优化 -O2,而不是默认的 -O0。
在目标优先事项中将执行效率保持为最高优先级,可确保从 MATLAB 中生成代码时侧重于执行速度。目标优先事项中还提供了 RAM、ROM 效率等其他参数,可根据要求调用这些参数,但可能会影响性能。默认配置为“none”。
优化:
用户可以配置优化优先事项,以实现最大速度或最小内存 (RAM),或者在 RAM 最小和速度最大之间实现平衡。要生成在执行速度方面性能更优的代码,应将优化优先事项设置为实现最大速度。默认行为是优化时在 RAM 与速度之间保持平衡。
将 Configuration Parameters > Code Generation > Optimization > Optimization levels > Priority 更改为 Maximize Execution Speed。这会应用代码生成设置来实现最大执行速度。
如果未选中“optimization customization”,则 Details 选项卡下会自动填充默认配置,使块操作针对提高代码执行速度进行了优化。
在 Configuration Parameters > Code Generation > Optimization > Optimization levels 中,取消选中 Specify custom optimizations。这会禁用 Details 部分中的参数,因此您无法单独选择或清除这些参数。
通过将 Configuration Parameters > Code Generation > Optimization > Default parameter behavior 更改为 Inlined 来优化默认参数行为,从而提升性能。
此外,在 Configuration Parameters > Code Generation > Optimization > Advanced parameters 中,选中 Inline invariant signals 复选框。这在生成的代码中使用模型参数的数值,而不是它们的符号名称。
从浮点到整型的数据类型映射为待启用。此配置会移除处理 NaN 值的浮点到整型转换结果的代码。
在 Configuration Parameters > Code Generation > Optimization > Advanced parameters 中,选中 Remove code from floating-point to integer conversions with saturation that maps NaN to zero 复选框。这会移除处理 NaN 值的浮点到整型转换结果的代码。
接口:
在“interface”选项卡下,可以禁用对所有不打算使用的数据类型配置的支持。为了生成高效的代码,可以移除对绝对时间、非有限数和复数的配置支持。Support 选项卡中启用了针对所选配置的额外检查,这可能会在运行时应用代码中增加额外数量的周期。
在 Configuration Parameters > Interface > Software environment 中,取消选中 Support: absolute time, non-finite numbers and complex numbers。这会导致支持依赖于绝对时间、非有限数和复数的块。取消选择 Support 选项卡下的未使用配置可确保更好的运行时代码效率。
设置 Configuration Parameters > Math and Data Types > Advanced parameters 中的 Application lifespan (days) 字段。这指定了依赖经过时间的应用程序在计时器溢出发生前可以执行多长时间(以天为单位)。