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.

[参考译文] 在 TDA2xx 上使用 VisionSDK 2.10下的 CSL 进行 EDMA 传输

Guru**** 2585275 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/604213/edma-transfer-using-csl-under-visionsdk-2-10-on-tda2xx

我使用的是 Windows 7 x64、VisionSDK 2.10和 TDA2xx 板。

到目前为止、我已经使用与 SYS/BIOS 相关的 EDMA 低级驱动程序成功测试了 EDMA 传输(它使用一个精确的信标实例)。 我使用的是 CCS、并通过 XDS 调试探针连接到电路板。

但是、我需要在不依赖 SYS/BIOS 的现有 VisionSDK 用例中测试传输。 我发现有一种使用芯片支持库的方法。 请参阅本文档: http://www.ti.com/lit/ug/spru401j/spru401j.pdf 。 但是、我在包含上述文档(第7-4章)中所述功能 API 的任何位置都找不到"CSL.h"和"CSL_EDMA.h"。 此 wiki 介绍了可以下载 C6000的 CSL 的位置: http://processors.wiki.ti.com/index.php/Chip_support_library。 下载软件包后、我仍然无法在任何位置找到 API。 我对 CSL 设置过程过于困惑。 我的代码在 DSP C66x 内核上运行。

我只需要一个指导手、就可以帮助我在 VisionSDK 中正确使用 CSL 设置简单的 EDMA 传输。

感谢您的帮助。

谢谢你。

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

    我已将您的问题转交给 VisionSDK 专家。

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

    您好、Nik、

    芯片支持库提供了一个无操作系统驱动程序抽象层。 与 CSL 类似、Vision SDK 2.10具有独立于 SYS/BIOS 的 Starterware EDMA DAL。

    您可以使用 Starterware EDMA DAL 为 Vision SDK 用例设置简单的 EDMA 传输。

    您应参阅 ti_compones\drivers\starterware_01_06_00_16\include\EDMA.h

    例如、您可以参阅 ti_componels\drivers\starterware_01_06_00_16\examples\EDMA_test 中存在的 EDMA_test_app。

    希望这对您有所帮助。

    此致、

    Rishabh

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

    您好、Rishabh、

    我尝试了您的建议、让我解释一下我做了什么。 因此、我有一个现有的 ALG_PLUGIN、并且一直在尝试通过将 EDMA 测试代码注入该 ALG_PLUGIN 的创建函数来测试 EDMA 的使用情况。 为此,我修改了"ti_components\drivers\starterware_01_06_00_16\examples\edma_test\main.c"中的 main()函数,以使用一些其他名称,例如 EDMA_Test(),因此我可以在 ALG_PLUGIN 创建函数中调用它。

    我将相关 EDMA 源文件添加到了 ALG_PLUGIN 的 SRC_FILES.MK 中、并将包含 EDMA 测试所依赖头文件的头文件的 include 目录中。 已成功构建应用程序。 但是,在电路板上加载用例时,我有一条线路在 EDMA_Test()调用之前打印一条消息,然后应用程序停止,从主机发出消息,表明它正在等待端口5500上的数据。 它没有打印任何我输入到 EDMA_Test()的消息。

    我非常感谢你们的帮助,因为我已经为此付出了一段时间的努力。

    是否有一些依赖性较小的测试,如以下测试 :http://processors.wiki.ti.com/index.php/Programming_EDMA_without_EDMA3LLD_package?

    我还尝试了那个、但没有成功、可能我没有正确设置 EDMA 和 ParamSet 基址。 我已经尝试过在整个 VSDK 中定义的3个地址、但它们都不起作用。 我在任何官方 C66x 数据表中都找不到任何地址。 您能告诉我相关的地址、还是让我知道在哪里找到它们。

    最后、当然、我想使用 EDMA_TEST、因为它更容易集成到应用中。

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

    您好、Nik、

    这里可能存在多个问题。

    Vision SDK 使用 EDMA LLD、因此可能会与 Starterware EDMA 驱动程序发生一些冲突、从而导致崩溃。 如果您想让 Starterware EDMA 与 EDMA LLD 共存、这需要大量工作。 您需要检查 LLD 使用的所有资源(通道、参数集等)、并查找 EDMA 测试要使用的未使用资源。 您还应该从 EDMA 测试中删除 EDMA 初始化、因为 IPU1_0应该已经使用 LLD 初始化 EDMA。

    EDMA 测试应用程序使用与 SDK 不同的设置初始化 UART 时、"message from host that it is waiting for data on port 5500 (来自主机的消息、它正在等待端口5500上的数据)"可能是挂起之前打印的最后一条消息、因此您也可能不会在以后的测试中收到任何消息 API。

    对 C66x 地址重新分级您需要为 EDMA 使用 L3地址。 这些地址将在 TRM 中给出。 您找不到哪些地址?

    此致、

    Rishabh

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

    在这种情况下、我可以尝试将 EDMA LLD API 用于 DMA 传输、我只是担心 LLD 与 Starterware 相比的性能。 请就此问题发表意见。

    至于 C66x EDMA 寄存器地址、我找到了正确的地址、并且能够在没有任何 API 的情况下测试 DMA。 然而,这完全出于好奇,因为我不打算用这种方式对转让进行编程。

    感谢您的帮助和建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nik、
    对于 EDMA LLD、可能会有一些软件开销。 传输性能与硬件性能保持不变。

    此致、
    Rishabh