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.

[参考译文] TMS320F28379D:针对正弦和余弦功能的时间优化实施、用于生成 C 代码

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1390740/tms320f28379d-time-optimized-implementation-for-sin-and-cos-functionality-for-c-code-generation

器件型号:TMS320F28379D

工具与软件:

我正在尝试在 Simulink MBD 环境中创建2个优化功能 Sin 和 Cos、以便最大限度地减少洗脱时间。

我可以考虑以下解决方案、但我不确定其中哪一个对于嵌入式目标控制器最有效。 任何指导都将受到赞赏。

  • 解决方案1:对正弦和余弦均使用1D 查找表
  • 解决方案2:对正弦使用1d 查找表并使用余弦公式  

  • 解决方案3:使用1D 表表示0-90度、然后使用正弦和余弦的正交对称公式

  • 解决方案4:使用定制系列近似值

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

    从器件的角度来看、TMU 指令集扩展将是最快的 sin/cos。 如果调用为 sin (float32)或 cos (float32)、编译器开关启用 TMU 并启用浮点宽松模式、则将使用 TMU。 因此、任何一个块都会生成一个简单的32位 sin ()或 cos ()调用。 并适当地设置编译器开关。

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

    目前我唯一的选择是在 Simulink 中对实现进行建模、然后通过模型检查和代码检查测试、再生成 C 代码。由于我不希望实现依赖于处理器系列、因为我正在进行库创建、您是否可以提供任何指导、以便我如何解决此问题?

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

    如果选择逼近方法为 none、则进行 sin 或 cos 调用。 如上所述、C28x 编译器会将其转化为合适的 TMU 代码。 这是 F2837x 上最快的速度。