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.

[参考译文] TMS320F28388D:从 CLA 开始 DMA 传输

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1470280/tms320f28388d-starting-dma-transfer-from-cla

器件型号:TMS320F28388D

工具与软件:

你(们)好

我有一个关于 DMA 的问题。 我想将数据从 CLA1_DMA_RAM (0x1680)传输到 CPUx_CM_RAM (0x39000)。

当我使用以下命令强制从 CPU1进行传输时:

DMA_startChannel(DMA_CH3_BASE);
DMA_forceTrigger(DMA_CH3_BASE);


传输已完成、一切正常运行。

但当我尝试类似 CLA 的东西:

__meallow();
HWREGH(DMA_CH3_BASE + DMA_O_CONTROL)           |= DMA_CONTROL_RUN;
HWREGH(DMA_CH3_BASE + DMA_O_CONTROL)           |= DMA_CONTROL_PERINTFRC;
__medis();


没有发生任何情况。 是否有可能直接从 CLA 开始传输? 我没有看到任何此类操作的示例。

此致。


Jérôme μ A

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

    您好、Jerome、

    CLA 无法访问 DMA 寄存器(请参阅 F2838x 存储器映射的 CLA 列)、因此无法做到这一点。

    如果您希望 CLA 确定 DMA 传输的时序、您可以改用 CLA SOFTINT 寄存器、 在 ISR 内以软件方式触发一个 CPU 中断、该中断将调用 DMA_startChannel (DMA_CH3_BASE);以及 DMA_forcestrigger (DMA_CH3_BASE);。

    请告诉我、这对您而言是否是可行的解决方案。

    此致、

    Delaney