主要内容

本页采用了机器翻译。点击此处可查看英文原文。

提升 TI C2000 Simulink 应用程序中的代码执行速度

在本主题中,您将学习各种优化技术,以提高 Simulink® 应用程序在 Texas Instruments® C2000™ 设备上的执行速度。您将探索代码生成设置中的配置参数调整方法,例如在构建配置中选择 Faster Runs 以及启用 TI C28x™ 代码替换库 (CRL),以实现硬件优化的函数。

此外,该主题还涵盖了高效的代码和数据加载策略、为精度和性能选择数据类型,以及有或没有浮点单元 (FPU) 的设备的相关考虑因素。此外,还提供了高级优化选项和其他资源。

以下技术旨在提高 Simulink 应用程序在 TI C2000 设备上的执行速度。

特定于编译器的优化

更新编译配置

导航至 Configuration Parameters > Code Generation > Build Configuration,然后选择 Faster Builds 以更高的优化程度编译代码,从而有效减少运行时间。

注意

当您将 Build configuration 配置为 Faster Builds 时,编译过程会添加 -O2 标志。为了获得更好的性能,您可以将编译配置更改为 Specify 并添加不同级别的标志,例如 O3, O4

工具链选择

Texas Instruments C2000 处理器支持多种工具链选项,使用户能够生成不同格式的可执行文件。C28x 内核支持的工具链包括:

  1. Texas Instruments Code Composer Studio™ (C2000) - 该软件可生成通用对象文件应用程序二进制接口 (COFF ABI) 格式的可执行文件。COFF ABI 格式会将 Simulink 中的双精度数据类型解释为 32 位浮点类型。

  2. Texas Instruments Code Composer Studio - EABI (C2000) - 该软件可生成 ELF 应用程序二进制接口 (EABI) 格式的可执行文件。ELF ABI 格式会将 Simulink 中的双精度数据类型解释为 64 位浮点类型。

可以支持多种工具链选项,具体取决于选择的处理器。选择合适的工具链也会影响性能。有关详细信息,请参阅探索 TI C2000 工具链选项

数据类型优化.  根据 FPU 类型处理器所需的精度,选择合适的数据类型,singledouble。此外,还要检查信号数据类型,并尽可能使用所需的最低精度。例如,如果变量 Counter 的取值范围为 0 到 130,则使用 16 位整数数据类型就足够了,而不需要使用双精度或单精度类型。有关详细信息,请参阅探索 TI C2000 工具链选项

特定于目标的优化

启用代码替换库 (CRL)

通过在 Configuration Parameters > Code Generation > Interface > Code replacement library 中选择 TI C28x 来确保最佳硬件功能。它用高效的硬件优化版本替换了 EABI 工具链中的乘法、加法、IQMath 运算、快速整数除法、CLA 数学运算等功能。

优化代码/数据加载

通过在运行时将代码/数据从闪存加载到 RAM 来提高处理速度。有关详细信息,请参阅https://in.mathworks.com/matlabcentral/answers/673963-how-do-i-load-data-code-to-flash-and-run-from-ram-on-a-ti-c2000-device

内联参数行为

通过更改 Configuration Parameters > Code Generation > Optimization > Default parameter behaviorInlined,优化默认参数行为,从而提高性能。

定点数学优化

对于不支持浮点运算单元 (FPU) 的设备,应避免使用浮点运算,而选择定点运算以减少计算开销。您可以使用 C2000 库中提供的 IQMath 模块,这些模块可以在建模过程中手动添加。

当您选择正确的数据类型时,就会发生 CRL 替换。选择用于数学和三角运算的数据类型会对使用 IQMath 库函数施加限制。

模块名称 数据类型 逼近方法执行时间 (us)
IQNtrig (IQsinPU) 定点  0.88
Sin定点 查找(线性点斜率 – 旋转)11.51

利用 CRL 处理定点模型

对于使用定点数学的模型,CRL 会将运算替换为高度优化的 TI IQ Math 例程。确保不会因四舍五入或饱和选项而导致 CRL 遗漏。有关详细信息,请参阅启用代码替换库 (CRL)

利用 FastRTS 库

在支持 FPU 的设备上,使用 FastRTS 库中的优化浮点数学函数。对于具有 FPU 但没有三角数学单元 (TMU) 的设备,请考虑启用 FastRTS 支持。

启用 TMU 与 FPU

在同时支持 TMU 和 FPU 的设备上,选择 Enable TMU 可获得更优化的浮点运算例程。与 FastRTS 相比,该选项提供了更好的性能,并涵盖了 FastRTS 中的大多数例程。

该表描述了 F280049C LaunchPad 上 Sin Cos Quick Math 模块的执行时间。

模块名称 数据类型 逼近方法 TMU 执行时间 (us)
Sin Cos Quick Math 浮点 On 0.82
Off 2.51

解锁高级优化选项

Configuration Parameters > Code Generation > Optimization > Advanced parameters 下探索高级优化选项。

另请参阅

| | | | | |

主题

外部网站