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.

[参考译文] CLA 存储器或寄存器访问所需的 MNOP 指令

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1113815/mnop-instructions-required-for-cla-memory-or-register-access

您好!

我正在使用用于 F28375D 的 CLA 汇编语言、对 CCS 中调试时所需的延迟或 MNOP 有疑问。  例如、以下是一些参考代码:

我在 mar0、mar1、mr0和 mr1中传递值、并在汇编例程中将它们存储在本地存储器中一次。  我注意到、一些值在执行该操作后还没有准备好。  例如、在上面的第25行中、我首先需要等待3个 mnop、然后尝试访问存储在第19行中的 Mar1值。  同样、我需要在第25行之后等待3个 mnop、以便在第31行进一步操作 mr2等。 我可以在寄存器窗口中看到、直到这些 mnop 指令之后、这些值才会准备就绪。

这些延迟是否是 CLA 所需的正常管道/存储器访问延迟?  或者、在连接到 CLA 后、它们是我的调试和步进的结果?

有一个_mdebugstop()在进入此例程之前中断执行,上面没有显示。  当我点击它时、我会将 F5输入到这个汇编例程中、从包含对这个例程的调用的.cla 源文件、加上在该调用之前的_mdebugstop()。

请告知、

Robert

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

    您好、Robert、

    [~ userid="475780" URL"/support/microsoftware/C2000-microsoftware-group/C2000/f/c2000-microsoftware-forum/1113815/mnop-instructions- cla-memory-or -register-access 所需的延迟]这些延迟是否是 CLA 所需的正常管道/存储器访问延迟?  [/报价]

    没错。 由于 CLA 没有受保护的流水线、因此插入这些是正常的流水线延迟、因此需要 NOP 来确保正确执行写入后的读取操作。

    文档:请查看器件 TRM 中"CLA 流水线对齐"部分的"写入后读"。

    执行 NOP 后、结果出现在调试窗口中的原因是、单步执行会一次将流水线向前推进1个周期、并且需要几个周期才能到达流水线的写入阶段、之后结果将出现在调试窗口中。 这些信息也可在 CLA 软件开发指南中找到。

    文档: https://software-dl.ti.com/C2000/docs/cla_software_dev_guide/debugging.html?highlight=stepping

    谢谢、

    Ashwini

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

    谢谢 Ashwini。  自提交此问题以来、我确实意识到了您指出的大部分内容、包括通过引用您提到的文档部分。

    Robert