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.

[参考译文] AM3359:EDMA 从 PRU 传输到 DDR3

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/674492/am3359-edma-transfer-from-pru-to-ddr3

器件型号:AM3359

您好!

为了加快速度、我们有一个解决方案、我将面临 EDMA 从 SharedRAM 传输到 DDR3的问题。

传输被手动触发、但 DDR3数据不会被刷新。

似乎数据缓存处于活动状态时出现问题,为了获得良好的结果,我需要调用“CacheDataCleanInvalidateAll()”,在这种情况下,数据可用,位中断处理例程由于此调用而缓慢。

是否有任何关于如何解决此问题的想法?

另一方面、我想问的 是、EDMA 的使用是否可以更快地直接从 ARM 端读取 SharedRAM (这是有效的、但我们仍然对那里的延迟不满意)。

此致

Jiri Biel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是什么软件? Linux、RTOS、哪个版本?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bisher、
    此问题与任何操作系统无关(但我们使用的是最新 PDK 中 Starterware 的一些核心功能)。
    问题是、当缓冲器位于已刷写的存储器的 DDR3部分时、DDR3如何工作、并且我们尝试通过 EDMA 将数据从 SharedRAM 传输到缓冲器。 我只需要知道这部分存储器是否需要关闭数据高速缓存才能正常工作、或者它是否也应该在打开数据现金的情况下工作、而问题在其他地方。

    如果有需要、我想问、将数据从共享 RAM 传输到 DDR3的最快解决方案是什么。

    谢谢你。
    Jiri Biel
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 我已通知 RTOS 团队。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jiri、

    您是否尝试使用 CacheDataCleanInvalidateAll()来清理和使整个高速缓存无效,而不是使用 CacheDataInateBuff()来仅使必要的 EDMA 缓冲区无效?

    是的、您可以参考基准来确定 EDMA 的延迟降低、尽管它是从 AM437x 器件收集的:

    processors.wiki.ti.com/.../PRU_ICSS_EtherCAT

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Garret、
    感谢您提供的信息,我尝试了 CacheDataInvalidateBuff(),它更好,但我仍然不像直接读取没有 EDMA 的 SharedRAM 那样快。

    我从 wiki 链接了解到、您使用的是 EDMA 解决方案、但没有使用 DDR3。
    但我需要更多有关解决方案的信息:
    EDMA 传输是从 PRU SharedRAM 到 ARM SRAM (64KB)的吗? 或者 PRU IRAM 以某种方式用于该解决方案?

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

    在 wiki 链接中、基于 EDMA 的方法复制 PRU SharedRAM 和 DDR/ OnChip RAM (256KB L3 OCMC)之间的缓冲区。

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Garret、
    您是否了解访问时间?
    我指的是 arm->OCMC、arm->SharedMem?

    似乎存在差异、因此使用了此 EDMA 传输。

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

    当然,ARM->OCMC 和 ARM->SharedMem 的数据路径有差异。 ARM 通过 L3互连访问 OCMC、同时通过 L4和 OCP 从端口访问 PRU sharedMem。 互连部分中的 MPU 和 PRU-ICSS 方框图和 L3/L4拓扑可以清晰地说明数据路径的外观。 请注意、当启用 L1/L2高速缓存时、ARM 访问这些存储器区域时的延迟/吞吐量可能不是很简单。

    此致、
    Garrett