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.

[参考译文] CCS/TMS320F28377S:CLA ATAN2故障排除

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/592160/ccs-tms320f28377s-troubleshooting-cla-atan2

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

工具/软件:Code Composer Studio

我一直在尝试实现对 CLAatan2()的函数调用,并且很难弄清为什么它只返回值0.0。 不过、CLAmath 文件夹中的示例 atan2pu 似乎可以正常工作。

CLA 任务被成功触发并执行包含在 Cla1Task1中断中的代码。 我最初以为 CLAmath 库有问题、但正弦和余弦等其他函数的行为符合预期。 我的下一个想法是 ATAN2有问题、特别是因为它使用了 ROM 中加载的表(我的 MCU 是版本 C、TRM 会让我相信其中包含此功能)。 但是,函数 CLAexp()也使用表并成功执行。 函数 CLAexp2()并不总是返回1.0,这会导致我回到表存在问题的想法(因为 exp 的扩展在表中的任何内容之前都有1)。

当我打开一个内存查看器并查看 CLAatan2Table 时、它充满了零、但当我运行示例或如果我使用函数 CLAasin ()时也是如此、这两个函数都产生了正确的值。

我正在使用 C2000Ware 中的库、因此我认为它是最新的(v4.02.00.00)。 是否有人知道反正切函数是否有容易跳闸的东西、或者我更有可能只是在中出现错误、例如链接器设置会导致某些 trig 函数的行为与其他函数不同?  

此外、在查看相关表的存储器查看器时、我是否应该期待非零值?

感谢您的任何见解。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否确认 CLA 任务使用的数据段被加载到已分配给 CLA 的 RAM LSx 存储器中并作为数据 RAM 块? 您能否确认程序已加载到已分配给 CLA 的 RAM LSx 存储器中并作为程序 RAM 块进行加载?

    您使用什么存储器地址来尝试查看 ROM 内容? 我想为了使内容显示在存储器浏览器上、您需要在连接到 CLA 并单击 Debug 窗口中的 CLA 时使用 C28x 存储器地址。

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

    我可以确认、在分配给 RAMLS4的存储器中有数据、这是我将 CLA 配置为主器件并设置为程序块的结果。 在 CCS 中将.map 文件中的地址与存储器浏览器窗口一起使用时、指示为"使用"的相同空间数量确实具有数据(我不知道如何确认该数据是应该存在的数据)。

    我已将 RAMLS1-2配置为数据块、但目前没有数据块、因为我只是将硬编码数字(有时也可能是 ADC 寄存器读取)放入函数中进行调试。

    对于该表、我一直在使用.map 文件中找到的地址(0xf876)(如果在内存浏览器中搜索表名、则会出现相同的地址)。 这是我第一次尝试调试 CLA、因此我不确定我是否确实这么做、但我可以连接到 CLA 并将相同的地址键入回内存浏览器、但它仍然包含零。

    我还尝试更改 C2000链接器文件搜索路径包含以使用'cla1_math_library_fpu32.lib'(不带数据 ROM)、以便将表加载到 RAM (0xa0ea)中。 这确实会导致该地址的存储器包含正确表的内容。 尽管如此、我将 CLAatan2PU 的结果(出现在'Cla1ToCpuMsgRAM'中)放入的变量只读为0。

    感谢您的回复、如果我想了解其他有用的信息、我会告诉您。

    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的项目是否加载到闪存中? 如果.out 使用 RAM 和闪存、CCS 不保证所有段都加载。

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

    再次感谢您的帮助。 在意识到三角函数加速器的速度后、我决定不使用 CLA。 我非常确信、我遇到的问题是由于我的器件上粗心的链接器设置造成的。

    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴知道您解决了这个问题。

    SAL