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.

[参考译文] CCS/TMS320VC5416:DMA 传输不能#39;t 启动

Guru**** 2546490 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/617212/ccs-tms320vc5416-dma-transfer-doesn-t-start

器件型号:TMS320VC5416

工具/软件:Code Composer Studio

我们将数据从内部存储器传输到外部器件(NET2272)、以下代码运行良好:

while (循环计数--)

DSPWriteIO16 ((UINT32)(0x08005)、*(pTxBuf++));

其中0x08005是外部器件的地址、pTxBuf 是内部存储器的指针。 但它很慢、因此我们要将其转换为 DMA 传输、如下所示:

//Initialize the Subbank Address Register ver229 DMA to NetChip
*(int *) dMSA = DMSRC4;

//设置源地址
*(int *) DMSDI =(int) pTxBuf;

//设置目标地址
*(PUCHAR *) DMSDI =(PUCHAR)(0x08005);

//设置元素计数寄存器
*(int *) DMSDI =环计数;

//设置同步选择和帧计数寄存器
*(int *) DMSDI = 0x0000;

//set the transfer mode control register DMD=2 destination is I/O、DMS=1 source is data space
*(int *) DMSDI =(1 << DLAXS)|(2 << DMD)|(1 << sind)|(1 << DMS);

//启用 DMA 通道(以便可以开始传输)
*(volatile int *) DMPREC = 0x01010u;

//等待 DMA 传输完成
while (*(volatile int *) DMPREC & 0x00010)

但是、DMA 不会启动。 请帮助我找到我的代码中的任何错误。

谢谢。

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

    我已将此内容转发给 C55x 软件专家。 他们的反馈应发布在此处。

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

    谢谢!

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

    请查看此主题 e2e.ti.com/.../151930
    传输到外部设备需要一些额外的配置。
    希望这对您有所帮助。

    Lali