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.

[参考译文] PROCESSOR-SDK-TDAX:具有缓存的 PCIe 不工作

Guru**** 2589300 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/636395/processor-sdk-tdax-pcie-with-cache-not-working

器件型号:PROCESSOR-SDK-TDAX

大家好、

当我们在 A15上启用高速缓存时、PCIe 停止工作。 您是否知道为什么会发生这种情况?

我们在私有论坛 e2eprivate.ti.com/.../7223.aspx 上打开了 PCIe 并按照此帖子中所述进行工作

我们在 TDA2x 上使用 VSDK 2.12.01。

此致、

密耳

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

    我已将您的问题转交给一位专家征求意见。

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

    Yordan、您好!  

    感谢你的参与。

    此致、
    密耳

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

    Milos、

    什么配置更改导致 PCIe 停止工作?

    您使用 EDMA 进行数据传输的前一个线程是什么? 您是否仍在使用 EDMA 或 CPU 来访问 PCIe 空间?

    此致、

    Prasad

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

    Prasad、您好!


    在 a15_0.cfg 中启用位于以下路径的缓存时

    C:\VISION_SDK_02_12_01_00_PCIe\VISION_SDK\src\MAIN_APP\tda2xx\a15_0

    PCIe 停止工作。

    我们仍然以与以前相同的方式使用 EDMA 来访问 PCIe 空间。


    此致、

    密耳

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

    您好!

    是否有关于此问题的新闻?

    此致、
    密耳

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

    您好、Milos、

    您能否共享 a15 cfg 文件(工作用例和非工作用例)。

    我将在这里尝试重现并告诉您。

    只需确认、从上一个帖子中、
    您在 TDA2xx 的2个 EVM 上运行 PCIe 环回、其中一个 EVM 作为 vsdk 的 RC、另一个 EVM 作为 Starterware 的 EP、对吧?

    很抱歉、我上星期没有上班。

    此致、
    Prasad

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

    您好 Prasad、

    我将在附件中向您发送一个15 cfg 文件。

    当我们将高速缓存启用设置为 false (附件中的文件为115行)时、它可以正常工作、但当我们要启用高速缓存时(我们清除此设置、以便我们可以运行一些需要高速缓存的算法)、它将停止工作。 设备无法正常通信。

    我们目前在 VSDK 上同时运行。 我们创建了用于发送和接收的链接、当缓存被禁用时、它工作正常、如前所述。

    我们不使用 EVM 板、而是使用具有两个通过 PCIe 连接的 Tda2xx SoC 的板。

    此致、
    密耳

    e2e.ti.com/.../a15_5F00_0.cfg

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

    Prasad、您好!

    我有一个有关 PCIe 问题的更新。

    当我们使用 memcpy 而不是 DMA 副本时 、它在启用高速缓存的情况下不工作(a15_0.cfg 的第115行)。 因此、我们认为 DMA 不会导致问题。 我们希望这部分信息对您有所帮助。

    此致、
    Milos Pranjkic

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

    您好、Milos、

    启用高速缓存后、代码卡在哪里?

    链接失败了吗? 还是数据传输失败?

    您能否分享执行受阻的代码片段?

    此致、
    Prasad

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

    您好 Prasad、

    我们已经完成了以下实验。

    在我们的实验中、我们有 SOC1和 SOC2两侧、并执行以下步骤:
    步骤1. SOC1将数据发送到 SOC2
    步骤2. SOC2接收数据
    步骤3. SOC2循环返回数据
    步骤4. SOC1接收数据

    运行禁用缓存的爬虫程序端:
    工作正常。

    使用已启用的高速缓存运行两侧:
    整个初始化运行正常、然后当 SOC2想要从 PCIe 读取数据(步骤2)时、它无法读取数据、即它卡在 while 循环中进行读取。 SOC1还在等待数据读取(步骤4)。

    由于在这种情况下、我们无法得出哪一侧不正确、因此我们将侧面与启用/禁用的高速缓存组合在一起:

    SOC1侧禁用高速缓存、SOC2侧启用高速缓存
    行为与上一个相同(两个均已启用高速缓存)

    启用缓存的 SOC1端、禁用缓存的 SOC2端
    SOC1发送数据(步骤1)、SOC2接收并发回数据(步骤2和3)、但 SOC1卡在读取(步骤4)中。
    由此我们可以得出这样的结论:使用启用的高速缓存进行发送是正常的、并且我们在接收时遇到了问题。

    对于接收/读取、我们使用的代码与环回示例中的代码相似/相同。

    您是否有什么想法会导致此问题?

    此致、
    密耳  

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

    Milos、

    因此、在设置链路时没有问题、问题是数据传输。

    从回送示例中、CPU 在 while 循环中读取 DDR 存储器地址。

    您能否在 while 循环中添加对缓存无效的调用、以便每次读取该地址都来自 DDR 存储器、而不是 CPU 缓存。

    是否可以通过添加此项进行检查?

    此致、
    Prasad