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.

[参考译文] TMS320F28335:FastRTS 库中的 cosf/sinf 函数

Guru**** 2535750 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1218940/tms320f28335-cosf-sinf-function-in-fastrts-lib

器件型号:TMS320F28335
主题中讨论的其他器件:C2000WARE

使用 FastRTS lib 时、cosf 和 sinf 函数可能会返回任何错误的结果

当我插入 XDS100仿真器时, 在线的结果看起来是正确的,当移除 XDS100时,

使用测试端口读取结果时、结果是错误的、远远超出了[-1、1]范围。

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

    当 FPUmathtable 放置在原始位置时、cosf/sinf 运行良好

    当 FPUmathtables 推入 RAML3或任何其他位置时、cosf/sinf 故障

    问题是、当我使用数学函数 powf 时、 FPUmathtable 无法装入原始位置、我需要将其放在其他位置

    我如何处理这些问题? 还是 fastRTS 仅支持服务器三角函数?

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

    您能否使用 FPUFastRTS 库中的 atan2_f32示例? 它有2个构建配置、RAM_EABI (不使用 ROMTABLES、而是使用 FPUFastRTS 库本身中提供的表)和 RAM_ROMTABLES (使用 ROMTABLES)。

    链接器命令文件具有相应的差异:

    #if !定义(ROMTABLES)
    FPUmathTables :>> RAMM01 | RAMLS
    #else
    FPUmathTables :> FPU32_FAST_TABLES
    #endif //ROMTABLES

    谢谢。

    SIRA

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

    我没有找到用于设置 RAM_EABI 构建配置的属性、在何处设置它? 我没有找到这个地方

    pu lin1 说:
    #if ! defined(ROMTABLES)
    FPUmathTables :>> RAMM01 | RAMLS
    #else
    FPUmathTables :> FPU32_FAST_TABLES
    #endif //ROMTABLES [/报价]

    这只是 FPUmathTables Place 的选择

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

    参见图。  

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

    仅具有调试/发布选项

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

    RTS 库只有此选项、该项目采用 COFF 格式构建、程序部分在闪存中运行、部分在 RAM 中运行

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

    你误解了我所说的内容。

    这是针对您的项目的屏幕截图。 构建配置是由您为您的项目创建的。

    我要求您参考 TI 提供的 FPUFastRTS atan2_F32示例、我们在其中创建了2个构建配置。 其中一个指令使用 ROM 表、其中一个指令不使用(它使用 FPUFastRTS 库本身中定义的表)。

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

    这些是 FPUFastRTS 库的构建配置、用于生成位于 C2000Ware FPUFastRTS /lib 文件夹中的.lib 文件。 您将把您想要使用的库连接到您的项目中。

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

    我看到了使用 ELF ABI 的 FastRTS 编译配置、如果我使用此设置、应该更改工程配置

    项目是否使用 COFF 格式配置?

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

    是的。 您使用的库(COFF/EABI)应与工程的输出格式(COFF/EABI)匹配。

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

    在 FastRTS 用户指南中,4.2指出"没有任何库函数使用 TMU 指令、但库是在开启 TMU 支持的情况下构建的"

    如果我打开 TMU、这是否能解决 acosf 问题

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

    不、它不会。 文档不完整。 如前所述、FPUFastRTS 库实现 acosf 和 asinf 运算需要 TMU。

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

    当我将 FPUmathTables 放在 RAM 中时、我需要手动将它复制到 RAM 中?

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

    我需要检查一下、会回来给您。

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

    我用两种方法测试我的 prj,一种是将表复制到 ram,一种不是

    不复制时、sinf/cosf 可能返回错误值、远超过 float32数字范围

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

    好的、看起来就像在用户代码中需要一个显式的 memcpy。

    链接器命令文件是否定义了符号 FPUMathTablesRunStart、LoadStart、LoadSize?

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

    是的、链接器命令定义了这些符号

    在文档中、提到了库中有 acosf/asinf 函数,也许我可以尝试这些函数

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

    FastRTS API 中有 neithor acosf 或 asinf 函数、可能会在原始库中调用该函数

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

    是的、它未在表中列出、但在文档的其他位置提及。

    您的问题到底是什么? F28335上没有 TMU、因此您无法使用 FPUFastRTS 库提供的 acosf 或 asinf 函数。

    谢谢。

    SIRA

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

    TI 是否会开发一款具有 EtherCAT 连接的新型中级性能器件?

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

    请针对此问题创建一个新的 e2e 帖子、它将被路由至正确的人员进行回答。

    谢谢。

    SIRA