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