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.

[参考译文] J784S4XEVM:IPC 和共享存储器配置

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1412646/j784s4xevm-ipc-and-shared-memory-configurations

器件型号:J784S4XEVM

工具与软件:

大家好、团队成员:

我们正在试验在 A72和 MCU R5f 内核(不是大陆内核)之间创建共享存储器。
首先、我们为 Linux 创建了一个简单的独立应用程序(引用 rpmsg_char_simple)、而对于 MCU R5F0 _1内核、我们软链接到 IPC_Linux Echo_Test (最初软链接到视觉应用)。

借助此设置、我们能够在 A72与 MCU1_1 R5F 内核之间进行通信。

现在开始介绍共享存储器、我们参考了示例应用程序(main_mem.c)并修改了 Linux 示例应用程序以分配存储器:

  • 在这种情况下,我们尝试使用 appMemAlloc()来分配几个字节的数据,该数据在 app_utils\utils\mem\app_mem_linux_dma_heap.c 中定义  src
  • 我们在 同一路径 APP_UTILS\utils\mem\app_mem_linux_dma_heap.c 中调用 appMemGetVirt2PhyBufPtr () src 来生成物理内存(0x9000000000000.)
  • 我们复制了4字节的数据(0x55555555)、并通过 IPC 将相应的物理地址发送到 MCU1_1内核

现在在 R5F 内核上、  

  • 我们接收数据并存储相同数据、然后将其写入本地 uint32_t 变量、并通过 IPC 将该 uint32数据发送回 A72

观察到:

我们观察到一些不同于我们发送的值(0x5555 5555)。

查询:

  1. 我们假设所有内核都可以访问 dma_heap 地址
  2. 这种行为是否是因为我们已为视觉应用构建了其他内核、并且仅 MCU R5F 内核更改为 Echo Test、因此需要更改一些存储器映射文件?
  3. 与 RAT 转换有什么关系呢?

任何关于这方面的快速指示都将提供真正的支持!!
我们为 ADAS 图像生成了 Yocto 目标。

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

    尊敬的 Gowtham:

    我们的 IPC 专家将于下周结束、届时我们将延迟提供更好的帮助。  

    同时、是如何处理高速缓存的? 由于 DMA 与 A72没有缓存一致性、因此在 DMA 传输之前写入存储器时、是否从 A72刷新缓存?

    是否可以在 R5F 中放置一个断点来检查它是否接收到正确的数据?

    此致、

    Takuma

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

    我们正在使用 DMA 来传输数据...我们刚刚在这个区域创建了内存。 默认情况下、A72在该区域中分配内存。

    第一个数据本身是不正确的。 甚至对于处理第一个副本以及缓存一致性也是如此?  

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

    尊敬的 Gowtham:

    A72和 DMA 之间没有自动缓存一致性。 下面是一些很好的幻灯片供参考: https://bootlin.com/doc/training/sessions/ti-US.linux-kernel.jun2024/linux-kernel-beagleplay-slides.pdf 

    我不知道您的应用程序中是如何处理高速缓存的、因此只 想确保将其刷新。 您可以连接到板载 XDS110调试器、并使用 CCS 连接到 R5F、然后查看是否可以从 R5F 角度检查存储器内容。

    此致、

    Takuma