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.

[参考译文] AM2634:如何在同一内核中的多个任务之间共享变量

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1395593/am2634-how-to-share-variable-between-multiple-tasks-in-same-core

器件型号:AM2634

工具与软件:

大家好、团队成员:

我试图通过以太网将一个任务接收到的数据共享到另一个任务。 如何在同一内核中的任务之间共享变量

感谢您的帮助!

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

    你好、Ajit

    1.可以使用全局变量

    2.您可以创建受互斥体保护的 FreeRTOS 队列或内存结构。 (https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/02-Queues-mutexes-and-semaphores/01-Queues)。 通常在同一内核上的不同任务之间使用。

    请访问: https://forums.freertos.org/t/passing-variables-from-one-task-to-multiple-tasks/11461/5

    此致、
    Shaunak

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

    我们可以 从一个任务调用 RPMessage_send()来将数据发送到内核1和  

    另一个任务中的 RPMessage_recv()从内核1获取数据?

    两个任务都位于内核0中

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

    你好、Ajit、

    我想这应该是可能的、可以查看 SDK 文档。 在构造 RPMessage_construct 时、我们传递局部终点的值。   RPMessage_recv()将等待、直到在本地端点接收到来自任何 CPU 的消息。

    RPMessage_send()可以在 core-0上调用、以将消息发送到任何其他远程内核。

    我将再召集另一位 IPC 专家、以获取他们的意见。

    此致、
    Shaunak

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

    你好、Ajit、

    RPMessage 是一个在两个任务之间共享变量的有效方法。 我认为 Shaunak 建议使用带有互斥量访问控制的全局变量  、这也是一个有效的选项、因为它的移动片段更少、CPU 开销也更少。

    此致、

    Zackary Fleenor