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.

[参考译文] TMS320F28386S:内核之间的同步数据结构

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1241676/tms320f28386s-sync-data-structure-between-cores

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

您好!

非常感谢您提供有关如何在 C28和 M4之间保持数据同步的建议。

我们以"系统设置"为例:

typedef strucrt {
uint8_t system_id;
uint8_t number_of_resets;
uint16_t number_of_cats;
} Settings_ID;

typedef strucrt {
uint16_t max_sensores_allowed;
float max_up;
float min_up;
} Settings_limits;

typedef strucrt {
Settings_ID sysId;
Settings_limits sysLimits;
} System_settings;

我具体 使用了不同 大小的数据类型。

IPC 存储器的宽度为4字节。

我希望有一个示例、说明如何从 C28 复制到 IPC 存储器、然后使用单个复制命令从 IPC 复制回 M4。

这样、在添加设置时、我无需更新将数据复制到 IPC 和将数据读取到 IPC 的函数。

我遇到的问题是、 不同 数据类型的存储器大小不同。

我希望我明白了自己。

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

    主题专家不在办公室。 请预计在星期三之前回复。

    谢谢。

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

    当您有 CPU1将内容复制到 IPC MSGRAM 时、可从 CPU1触发到 CM 的中断并让 CM 读取 IPCMSGRAM 中的内容。 请查看中提供的示例 \driverlib\f2838x\examples\C28x_cm\IPC。 区别在于结构大小无关紧要。

    此致、

    马诺伊

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

    我知道这一切。
    这不是我问的。

    可以正常运行 IPC 消息。

    但 IPC 存储器的宽度为4字节。

    我询问有关发送和接收不同大小数据的建议。

    这就是我添加示例数据结构的原因。

    我知道我可以手动转换发送侧和接收侧的每个数据输入。

    但是、如果我有600个设置、这是非常糟糕的代码。

    我要求提供有关如何一次性复制和恢复所有数据结构的建议。

    我希望这次我的自我变得更加清晰。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但 IPC 内存宽度为4字节[/引号]

    您在这里讨论 IPC 寄存器吗? 您不能使用 IPC 寄存器将数据从一个内核传输到另一个内核、而是使用 IPC MSGRAM。 您可以将 Settings_ID、Settings_limits 和 System_settings 结构的内容推入 IPC MSGRAM 并触发另一个 CPU 中断以供其读取。