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:如何同时同步3个内核?

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1396726/tms320f28388d-how-to-sync-3-core-at-the-same-time

器件型号:TMS320F28388D

工具与软件:

您好!

我想创建使用 CPU1、CPU2和 CM 内核的多内核工程。  我查看了示例代码、但看不到一个同时使用了所有3个内核的项目。

如何同步所有三个内核?

我尝试按如下方式同步3个内核、但我不确定。 因为如果我在到行之间添加延迟、 内核之间会存在延迟。 这表明 CPU2和 cm 之间存在时间延迟、尽管时间延迟很小。

    IPC_sync(IPC_CPU1_L_CPU2_R, IPC_SYNC_CPU2);
    IPC_sync(IPC_CPU1_L_CM_R, IPC_FLAG30);

我非常感谢您提供可以学习 IPC 和多内核使用的任何资源。、

谢谢。

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

    您好!

    SYNC 函数所做的是在 CPU 之间的每个方向发送标志、然后它会等待、直到所有标志都被应答。

    您可以创建自己的适用于3个 CPU 的同步函数。

    每个 CPU 将向其他2个 CPU 发送标志、然后等待这些标志得到应答。 它将无法看到其他两个 CPU 之间的通信、但可以假设这已正常工作。  

    请阅读 TRM 的 IPC 部分、这一章中的标志图非常有用。

    此致、

    Ben Collier

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

    Ben、您好!

    感谢您的答复。

    我阅读了您提到的 IPC 章节。

    是的、它说我可以设置、确认或清除多个标志。 但我理解、它可以在两个内核之间发生。 我还检查了"ipc_ackFlagLtoR()"函数的 ACK 标记。

    "ipc_ackFlagLtoR ()"函数可以获取标志参数的多个标志、例如"IPC_FLAG31 | IPC_FLAG30"。 由于 ipcType 枚举参数、我无法写入多个 ipcType。

    对于示例:

    IPC_ackFlagLtoR(IPC_CPU1_L_CPU2_R, IPC_FLAG31|IPC_FLAG30) //possible
    IPC_ackFlagLtoR(IPC_CPU1_L_CPU2_R |IPC_CPU1_L_CM_R, IPC_FLAG31|IPC_FLAG30) //not possible

    我知道我只能在 Sametime 上同步两个内核和其他内核。

    我找不到内容或试图在错误的部分找到内容?

    此致。

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

    您好!

    硬件中没有东西可以同步所有三个内核。  

    您将需要在软件中编写一些将"模拟"这种情况的内容。

    例如、如果每个内核与其他两个内核同步、这应该大致同步三个内核。  

    谢谢!

    Ben Collier

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

    Ben、您好!

    感谢您提供的帮助和信息。 我将尝试用软件进行仿真。

    此致。