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.

[参考译文] TMS320F28379D:建议在2个内核之间共享变量

Guru**** 2601575 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/677394/tms320f28379d-advise-at-sharing-variables-between-the-2-cores

器件型号:TMS320F28379D

您好!

我正在使用 TMS320F28379D、我需要建议在两个内核之间共享变量。

首先、我的应用程序的一些详细信息:

  • 两个内核都在 SYS/BIOS 下运行;
  • 启用两个 CLA;
  • 每个内核运行实时关键应用程序和一些其他任务;
  • 我在每个内核上有3个有限状态机;
    • CPU1保存监控 FSM;
    • 该监控 FSM 可命令其他控制器;
  • 内核异步运行;

据我所知、我有两种选择:

  1. 将 GSRAM 中相同的"结构"映射到 CPU1和 CPU2的共享变量;
    1. 为此、我将使用两个 GSRAM 块、一个是 CPU1作为主站、另一个是 CPU2作为主站;
  2. 使用 IPC 外设和驱动程序防止同时进行读取和写入;
    1. 为此、我认为我需要使用一些中断、Hwi 和 Swi;

我的疑问:

  1. 在 GSRAM 下共享变量是否会导致存储器错误? (即、可能在 CPU1写入 CPU2时尝试读取相同的地址)
  2. 如果我不能使用 GSRAM、是否有其他方法可以在没有中断的情况下共享变量? 可能在某个时候只使用 IPC 标志?

此致、提前感谢

卢卡斯

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

    您好 Lucas、

    [引用] GSRAM 下的共享变量是否会导致内存错误? (即、可能在 CPU1写入 CPU2时尝试读取相同的地址)

    不会、不会有错误、因为 RAM 是单端口 RAM、并且对来自不同主器件的访问进行仲裁。 在这种情况下、读取可能会根据仲裁返回新数据或以前的数据、但不应有任何错误。

    请告诉我这是否适合您。

    此致、

    Vivek Singh

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