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.

[参考译文] TMS320F28377D:CLA:通过 CLA 任务触发 CLA 任务

Guru**** 2530100 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1052131/tms320f28377d-cla-trigger-cla-task-by-a-cla-task

器件型号:TMS320F28377D

各位专家、您好!

是否可以通过 CLA 任务触发 CLA 任务?

提前感谢您、

1月

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

    您好、Jan、

    是的、这是可能的。 更多信息、请参阅器件 TRM 中标题为 CLA_SOFTINT_REGS 的第6.8.3节。 请注意、由于 CLA 具有任务驱动型架构、如果任务 X 触发任务 Y、任务 Y 将仅在任务 X 完成后执行。

    谢谢、

    Ashwini

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

    您好、Ashwini、

    感谢您的回答。

    很抱歉、但这不起作用。 如 TRM 第6.3.5节所述、CLA1SOFTINTEN 和 CLA1INTFRC 寄存器用于向 C28x CPU 生成软件中断。 这不是我需要的。

    例如、我想从 CLA 任务1中触发 CLA 任务2。

    另一个想法?

    此致、

    1月

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

    您好、Jan、

    请参阅开发指南中的以下部分。 F2837x 可能无法让 CLA 任务直接触发另一个 CLA 任务、因为它具有 CLA 类型1。 但是、让我与团队核实一下、并在一天或两天内与您确认。

    https://software-dl.ti.com/C2000/docs/cla_software_dev_guide/faq.html#what-can-trigger-a-task-also-referred-to-as-an-isr

    正确的方法是 CLA1SOFTINTEN 和 CLA1INTFRC 在 C28侧生成中断、而不是 CLA。 不过、如文档中所述、 我们可以在 CLA 任务 x 中使用它来为任务 x 在 C28上生成中断、然后让 C28 ISR 强制任务执行 y。使用此选项、您将失去在任务 x 结束时在 C28上生成中断的能力-这将没有 如果您的系统当前未使用任务 x 中断的结束、则会产生影响。

    文档中提到的另一个选项是使用一个未使用的 ePWM 来通过写入任务 x 内的 ePWM 来触发 CLA 任务 y

    谢谢、

    Ashwini

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

    您好、Ashwini、

    感谢您的回答。

    我不能选择生成 CPU ISR 来强制执行 CLA 任务。 使用 CLA 时、我想释放 CPU。 因此、这会产生反作用。

    我尝试了您的建议、使用 ePWM INT 来触发 CLA 任务、它运行得很好。
    在下一步中、我将尝试使用配置为 APWM 的 eCAP。

    遗憾的是、无法通过任务直接触发任务。 此变通办法会浪费资源。

    非常感谢您的帮助。

    此致、
    1月