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.

[参考译文] AM13E23019:DMA 配置问题

Guru**** 2950040 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1651022/am13e23019-dma-configuration-issue

部件号: AM13E23019
主题: SysConfig 中讨论的其他器件

你好

我正在多种模式下使用 DMA 进行实验。 我观察到 DMA 配置中存在不一致之处。 其中一个示例是当我反复配置单次模式和重复单次模式时、有时它会坚持重复单次模式、而不会重新配置为单次模式。 请查看配置屏幕截图。
e7c3b55c-05b7-48ac-98b2-0e8860a9b962.png
08f3d167-71f1-4fca-a5f4-f57fd0e8761c.png

在进一步评估时、我发现 DMACTL 寄存器未按预期更新、我必须在 DMA 初始化之前通过调用 API 重置 DMA 通道  
DL_DMA_resetChannel (APP_DMACH_0_DMA_INST、APP_DMACH_0_CHANNEL_ID);

int main()
{
    Device_Init();
    DL_DMA_resetChannel(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID); 
    SYSCFG_DL_init();


    /* DMA initialization and settings */
    DL_DMA_setSrcAddr(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID, (uint32_t)tcf_txbuffer);
    DL_DMA_setDestAddr(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID, (uint32_t)rxbuffer);
    DL_DMA_setTransferSize(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID, MML_TX_BUFFER_SIZE_TCF);
    DL_DMA_enableChannel(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID);


    // Further code 
}




是否应该在 DMA 初始化之前重置信道?
DMACTL 不更新的原因是什么?


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

    尊敬的 Dheeraj:

    为了确保、您正在更新 SysConfig 选择、保存.syscfg 文件、重建工程以及正确地将程序重新加载到设备上?

    此外、您能否在 CCS 寄存器视图中切换 Continuous Refresh 以确保寄存器内容正确更新?

    此致、

    Delaney

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

    是的、进行了重建和持续刷新。  
    如果我在初始化之前复位 DMA、则问题永远不会出现。  

    我将通过爆炸物处理处就此补充更多意见

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

    尊敬的 Dheeraj:

    我自己无法复制这种行为。 如果在 SysConfig 中切换传输模式、重新编译工程并重新加载代码、我会看到 SysConfig 生成的代码能够使用新选项正确更新 DMACTL 寄存器。 请确保在重建后加载更新的.out 文件到器件。

    此致、

    Delaney

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

    尊敬的 Dheeraj:

    我将通过 EOD 对此添加更多输入
    [/报价]

    1.这里有更多的信息吗? 是否总是在冷重启后以及重启后看到此问题? 还是仅在使用了一个 DMA 通道并重新初始化它之后?

    2.您可以分享 LaunchPad 的示例应用程序、我们可以用它来重现和调试此问题吗?

    此致、
    Shaunak

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

    尊敬的 Dheeraj:

    根据我们的调试调用:

    1. DMA 模式不从重复单次更改->单次更改(如调用时所述,我看到问题正在重现,我将与 SDK 团队沟通问题、并在进行一些内部测试后相应地提交 JIRA。 仅供参考,我还尝试在 CH0 上重现它,CH3 I 仍然无法在本地重现,但我们将尝试不同的设置,并相应地归档错误。

    2. CH6 被配置为全通道的错误: jira.itg.ti.com/.../MSDK-2368

    此致、
    Shaunak