This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F280049:如何在不包含库的情况下调用 sqrt()函数

Guru**** 2347430 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/926854/tms320f280049-how-to-invoke-sqrt-funciton-without-include-the-library

器件型号:TMS320F280049

您好,出口

我想在 CLA 任务中使用执行 sqrt 计算。 在 CLA 数学库 UG 中、我发现有两个实现:

1.装配功能2. 内联函数。

在基准测试中、这两种方法的效率似乎相似。

这是否意味着我只能包含 clamath.h 并调用内联函数而不包含库?

(我在 UG 中发现了这一点:内联函数只能用于后台任务? 但在该示例中、它看起来不是。

内联 C 函数提供与汇编函数相同的 CLA 数学运算、但实际上是这样
以内联 C 语言编写、以便在2类 CLA 后台任务中使用它们。)

由于我不使用任何三角函数、我是否需要 在 工程中包含 ROM_symbols_lib?

另一个问题是、在 clamath.h 中、它展示了 TMU、FPU、INLINE、.lib 对 sqrt 的几种实现、  

我想知道、它们在 CLA 代码中都是可用的吗? 谢谢。

林纳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Linna、

    [引用 user6283973]UG 中存在此问题:内联函数只能用于后台任务? 但在示例中、似乎没有。

    它应该说、在后台任务中、只能使用内联函数。  后台任务不允许调用函数。   

    在其他任务中、可以使用内联函数或被调用函数。  

    user6283973 说:
    这是否意味着我只能包含 clamath.h 并调用内联函数而不包含库?

    是的、但是 、如果包含非内联版本但未使用、则不会占用 codespace。   您是否在执行此操作时遇到了困难?

    [引用 user6283973"]由于我不使用任何三角函数,我是否需要 在 项目中包含 ROM_symbols_lib?

    你不是。  但如果不使用它们、它们就不占用任何空间。   

    [引用 user="user6283973"]

    另一个问题是、在 clamath.h 中、它展示了 TMU、FPU、INLINE、.lib 对 sqrt 的几种实现、  

    我想知道、它们在 CLA 代码中都是可用的吗? 谢谢。

    [/报价]

    CLAmath.h 中的#defines 将 C28x FPU/TMU 内在函数转换为 CLA 函数。  这是针对从 C28x FPU/TMU 迁移到 CLA 的代码。

    例如:

    • C28x + TMU 上运行的应用程序使用内在函数__DIVf32。  
    • 然后代码被移动到 CLA、#define 将用 CLADIV_INLINE 替代内在函数。  
    //
    //针对 CLA2的 TMU 内在函数
    //
    #define __DIVf32 CLAdiv_inline
    #define __sqrt CLAsqrT_inline
    #define __sin CLAsin_inline
    #define __cos CLACOS_INLINE
    #define __atan CLAatan_inline
    #define _atan2 CLAatan2_inline
    #define __sinpuf32 CLAsinpu_inline
    #define _cospuf32 CLAcosPU_INLINE 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好、Lori

    非常感谢。 您完全回答了我的所有问题。  

    林纳