ZHCUCO7B December   2024  – November 2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2性能优化
    1. 2.1 编译器设置
      1. 2.1.1 启用调试和源代码交叉列
      2. 2.1.2 优化控制
      3. 2.1.3 浮点数学
      4. 2.1.4 定点除法
      5. 2.1.5 单精度与双精度浮点
      6. 2.1.6 链接时优化 (LTO)
    2. 2.2 存储器设置
      1. 2.2.1 从 RAM 执行代码
      2. 2.2.2 从闪存执行代码
      3. 2.2.3 数据放置
    3. 2.3 代码结构和配置
      1. 2.3.1 内联
      2. 2.3.2 内联函数
      3. 2.3.3 易失性变量
      4. 2.3.4 函数参数
      5. 2.3.5 启用更广泛的数据访问
      6. 2.3.6 自动代码生成工具
      7. 2.3.7 准确剖析代码
    4. 2.4 应用代码优化
      1. 2.4.1 SDK 优化库
      2. 2.4.2 使用库优化代码尺寸
      3. 2.4.3 C29 特别指令
      4. 2.4.4 C29 并行性
      5. 2.4.5 首选 32 位变量和写入
      6. 2.4.6 编码风格及其对性能的影响
  6. 3参考资料
  7. 4修订历史记录

SDK 优化库

使用 F29x SDK 中提供的优化库和源代码。这些代码包含许多标准控制、DSP 和数学运算的理想实现。其中一些实现(FFT、FIR)是以汇编语言编写的。

许多 RTS 库函数是周期密集型函数,因为它们会包含所有极端情况。当做出某些假设时(例如,没有 NaN 或无限值作为操作数或浮点运算结果),可以将这些函数替换为利用特定 C29 指令的更简单、更优化的函数。例如:asinf()、acosf()、atan2f()、ceilf()、cosf()、divf()、expf()、floorf()、fmodf()、roundf()、sinf()、truncf()。F29x-SDK 中提供了这些实现的示例,并已通过 -ffast-math 编译器选项启用。

使用 AUTOSAR 的汽车应用利用代码生成工具生成的数学库,其中包含浮点和定点库,以及用于定点到浮点和浮点到定点转换的函数。可以利用 C29 指令以高效的方式执行这些库。