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.

[参考译文] TMS320F28388D:CPU 2上的 IQMath 示例

Guru**** 2540460 points
Other Parts Discussed in Thread: TMS320F28388D, C2000WARE, TMDSCNCD28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1059329/tms320f28388d-iqmath-example-on-cpu-2

器件型号:TMS320F28388D
主题中讨论的其他器件: C2000WARETMDSCNCD28388D

您好!

我想让 IQMath 库在 TMS320F28388D 上的 CPU2上工作。  我正在 C2000Ware_3_04_00_00中测试2838x_IQsamplpleC 项目。   

以下代码在 CPU1上正常工作。  在 CPU2上、当我执行_IQ29sin 时、它会崩溃。  为什么它会崩溃?  我怀疑这与 IQmath 表有关、但它们放在链接器脚本中。

int main(void)
{

    _iq input, sin_out;
    input = _IQ29(0.25*PI);
    sin_out = _IQ29sin(input);

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

    您好!

    您是在 ROM 中使用 IQMath 表和 API、还是在加载应用程序的库和表? 当您打开映射文件时、您是否看到 IQsin 和表? 确切的误差是多少? 这是一个 ITRAP 吗?

    -Shantanu

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

    您好、Shantanu、

    我正在 C2000ware 中运行此 TI 示例。  C:\ti\c2000Ware_3_04_00_00\libraries\math\IQmath\c28\examples\c2838x。   如果您有 TMDSCNCD28388D 开发板卡、则可以运行相同的测试。

    int main(void)
    {
    
        _iq input, sin_out;
        input = _IQ29(0.25*PI);
        sin_out = _IQ29sin(input);

    在 CPU1上、工作正常。  在 CPU2上、它崩溃、我得到 "未定义符号"。  IQsinTable 位于映射文件中。

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

    Nicholas、

    我知道问题是什么。 通过调试器连接时、RAM 内容必须已被擦除、因此无法访问 API。 或者、我建议您尝试以下操作:

    通过链接中的 ROM 符号库来构建 IQMath 项目  \libraries\boot_rom\f2838x\revA\rom_symbol_libs\CPU2\IQMath\*。lib

    根据是否使用 FPu32选择正确的库

    不要将 IQMath 符号放在 cmd 文件的 RAM 中。 这样、您将使用 CPU2 ROM 中的 API 和表。 然后、尝试运行、如果有任何问题、请返回给我。

    谢谢、

    Shantanu

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

    您好、Shantau、

    我能够让 IQmath sin 在 CPU2上工作。  在 TI 示例(C2000Ware_3_04_00_00\libraries\math\IQmath\c28\examples\c2838x)中、IQmathTables 放置在全局共享 RAM RAMGS15中。  根据技术参考手册、CPU2只有 由 CPU 2拥有、才具有获取访问权限。  解决方案是为 CPU 2提供所有权。  该代码从 CPU1执行、现在可在 CPU2上运行。  我也会考虑您的建议、将其放置在 ROM 中。

    谢谢

    Nick

     MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS15, MEMCFG_GSRAMMASTER_CPU2);