ZHCUCF7 October   2024 TMS320C28341 , TMS320C28342 , TMS320C28343 , TMS320C28343-Q1 , TMS320C28344 , TMS320C28345 , TMS320C28346 , TMS320C28346-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2C28 到 C29 的 CPU 迁移
    1. 2.1 用例
    2. 2.2 主要差异
    3. 2.3 源代码迁移
      1. 2.3.1 C/C++ 源代码
        1. 2.3.1.1 pragma 和属性
        2. 2.3.1.2
        3. 2.3.1.3 内联函数
        4. 2.3.1.4 内联汇编
        5. 2.3.1.5 关键字
        6. 2.3.1.6 数据类型差异
        7. 2.3.1.7 迁移工具支持
      2. 2.3.2 汇编语言源代码
    4. 2.4 工具链迁移
      1. 2.4.1 编译器
      2. 2.4.2 链接器
      3. 2.4.3 CCS 工程迁移
  6. 3CLA 到 C29 的 CPU 迁移
    1. 3.1 用例
    2. 3.2 主要差异
    3. 3.3 源代码迁移
      1. 3.3.1 C/C++ 源代码
        1. 3.3.1.1 数据类型差异
        2. 3.3.1.2 迁移 CLAmath.h 函数和内联函数
        3. 3.3.1.3 将 C28 和 CLA 迁移到相同的 C29 CPU
        4. 3.3.1.4 将 C28 和 CLA 迁移到不同的 C29 CPU
      2. 3.3.2 汇编语言源代码
    4. 3.4 工具链迁移
  7. 4参考资料

内联函数

  • C28 内联函数是映射到一条或多条 C28 汇编指令的内置函数。有些 C28 内联函数具有功能上等效的 C29 内联函数,但许多 C28 内联函数没有功能上等效的 C29 内联函数。
  • C29 编译器有一个名为 c29clang-tidy 的工具,用于检查 C28 内联函数的使用情况并提供替代方案建议(如有),此处对该工具进行了讨论(在 c29migration-c28-builtins 下)
  • C29 编译器用户指南还在此处此处讨论了内联函数
    注:

    当编译器设置适当 (--fp_mode=relaxed) 时,C28 编译器会将多个 RTS 库调用映射到 TMU 指令。此优化尚未在 C29 编译器中实现。目前,建议用户使用与 TMU 指令相对应的 C29 内联函数来高效地实现此类运算。