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.

[参考译文] RTOS/DRA71:DDR 高速缓存

Guru**** 2534000 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/725986/rtos-dra71-ddr-cache

器件型号:DRA71

工具/软件:TI-RTOS

你(们)好

   我们现在遇到 了一个有关 M4和 A15共享内存的问题。

  M4获取一个视频帧并将其保存到 DDR 中、然后 A15从 DDR 读取该帧。

  问题在于、从 A15读取的帧中的数据与 M4捕获的相同声誉中的数据不同。

  M4中的内存为 L1 cacahed 和 L2非缓存。

   我们可能怀疑是高速缓存问题, 我们已经将 A15中的内存更改为 非高速缓存,但差异就在网上。

 请帮助分析。

 Thx。

  

  

 

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

    您需要对 M4执行缓存回写操作、以确保 DDR 中的数据一致。

    此致、
    Rishabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    M4中的所有操作都基于 DMA。 此外,我们还执行了回写操作。

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

    M4具有单缓存、L1和 L2高速缓存不是单独的。
    您能否按照原始问题"M4为 L1 cacahed 和 L2非缓存"来检查您的实现。
    此外、A15还具有两级高速缓存。
    您能否检查是否同时禁用这两者。

    此致、
    Rishabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    M4中的配置文件如下所示:

    Ammu.largePages [1].pageEnabled = Ammu.Enable_Yes;
    Ammu.largePages [1].logicalAddress = 0x8000000;
    Ammu.largePages [1].translatedAddress = 0x8000000;
    Ammu.largePages [1].平 方已启用= Ammu.Enable_Yes;
    Ammu.largePages [1].size = Ammu.large_512M;
    Ammu.largePages [1].L1_writepolicy = Ammu.writepolicy_write_back;
    Ammu.largePages [1].L1_Allocate = Ammu.AllocatePolicy_Allocate;
    Ammu.largePages [1].l1_cacheable = Ammu.cachepolicy_cacheable;
    Ammu.largePages [1].L1_posted= Ammu.PostedPolicy_posted;
    Ammu.largePages [1].L2_cacheable = Ammu.cachepolicy_non_cacheable;
    Ammu.largePages [1].L2_posted= Ammu.PostedPolicy_non_posted;

    2.在 A15中,DDR 物理地址将通过 CMEM 映射。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您能否在 Ammu 映射中进行以下更改并尝试:
    Ammu.largePages [1].l1_cacheable = Ammu.cachepolicy_non_cacheable;

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

    我没有听到您的反馈、我假设您能够解决您的问题。
    如果不是、只需在下面发布回复(如果该线程由于超时而锁定、则创建新线程)。

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

    很抱歉没有及时答复。
    在 Ammu 映射中进行以下更改< Ammu.largePages [1].l1_cacheable = Ammu.cachepolicy_non_cacheable..之后
    M4无法启动。
    那么、我们想了解 cfg 文件中 L1与 L2之间的区别是什么?

    Ammu.largePages [1].L1_writepolicy = Ammu.writepolicy_write_back;
    Ammu.largePages [1].L1_Allocate = Ammu.AllocatePolicy_Allocate;
    Ammu.largePages [1].l1_cacheable = Ammu.cachepolicy_cacheable;
    Ammu.largePages [1].L1_posted= Ammu.PostedPolicy_posted;
    Ammu.largePages [1].L2_cacheable = Ammu.cachepolicy_non_cacheable;
    Ammu.largePages [1].L2_posted= Ammu.PostedPolicy_non_posted;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    正如我之前所说的、M4具有一个单指令缓存、没有单独的 L1/L2缓存。 您可以从代码中删除 L2语句。

    您是否仍面临缓存问题?

    此致、

    Rishabh

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

    我没有听到您的反馈、我假设您能够解决您的问题。
    如果不是、只需在下面发布回复(如果该线程由于超时而锁定、则创建新线程)。

    此致、
    Rishabh