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.

[参考译文] TMS570LC4357:DMA 翻转

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1355509/tms570lc4357-dma-roll-over-queiry

器件型号:TMS570LC4357

您好、DMA 是否支持 RAM 到 RAM 传输的翻转选项。 如果可以、您能否提供 DMA 设置以及一些示例源代码?

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

    尊敬的 Bharath Kumar:

    请参阅以下示例。

    e2e.ti.com/.../0243.DMA_5F00_memory_5F00_to_5F00_memory.zip

    在本例中、我将使用 DMA 进行存储器(RAM)到存储器(RAM)的传输。 传输块完成后 、我将清除接收缓冲区并再次启动 DMA 传输。

    翻转的主要设置是我们应该启用自动初始化。

    --
    谢谢。此致、
    Jagadish。

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

    您好!
    确切地说、假设我定义了两个大小为1KB 的缓冲区 A 和 B。 我想从 缓冲区 A 的偏移量512复制到缓冲区 B 的偏移量0、大小为1KB、这样整个缓冲区 A 就会复制到缓冲区 B。


    例如:

    缓冲区 A:


    现在我要从偏移量512复制到缓冲区 B 偏移量0、缓冲区 B 应该具有以下数据:




    我可以通过这种方式获得 DMA 回滚吗? 或者 DMA 的反转工作会有不同的方式 吗?

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

    尊敬的 Bharath Kumar:

    我能不能以这种方式进行 DMA 回滚? 或者 DMA 翻转是否会以不同的方式工作 ?

    单个 DMA 通道不能像这种方式回滚。 因此、无法使用单个 DMA 通道来实现此要求。

    不过、我建议您使用两个不同 DMA 通道的方法。

    在该方法中、使用两个 DMA 通道、

    使用第一个通道来将数据从缓冲器 A 的513移动到1024、从而移动到缓冲器 B 的1到512个位置。 并且使用第二个 DMA 通道来将数据从缓冲器 A 的1至512移动至缓冲器 B 的513至1024个位置。 因此、在该方法中、我们将1024个单元传输分成两个512字节。

    您可以通过这种方法来实现您的要求。 请尝试自己实施代码、如果您在实施过程中遇到任何困难、我可以为您提供帮助。

    --
    谢谢。此致、
    Jagadish。