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.

[参考译文] AM2732:EDMA 链路和中断问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1412747/am2732-edma-link-and-interrupt-issue

器件型号:AM2732

工具与软件:

嗨、团队:

我需要您帮助调查一些 EDMA 问题。 我想使用2个 EDMA 通道交换 sourceArray 和 destArray 中的数据。 dmaCh0和 dmaCh1是传输通道。 我应用3个参数:param0、param1和 param2。 PARAM0分配给 dmaCh0。 param1和 param2分配给 dmaCh1。 我要在 dmaCh1上使用链接函数。 dmaCh0和 dmaCh1被链接在一起、我将手动触发 dmaCh0。 预期的过程应该是我手动触发 dmaCh0 (param0)-> dmaCh1被触发、因为它链接到 dmaCh0 (param1)-> param2在 dmaCh1上执行(param2链接到 param1)。 但我在使用 这种方法时会遇到一些问题

param1和 param2的 OPT 集如下所示

我希望在总传输完成时使用中断回调。 因此传输中断已启用。 OPT 寄存器值为

参数1

PARAL2

TCC 值

问题1:

TCC2被分配给 Param2、tcc1被分配给 param1。 但 PARAM1->OPT->TCC 部分与 PARAM2->OPT->TCC 相同。 我认为这应该是不同的、为什么它们是相同的? 而  PARAM2->OPT->TCC 不等于 TCC2。

问题2:

PARAM1的连接寄存器显示此设置已经完成。 STATIC 设置为0。 但不执行连接。

交换序列为1。 src 已复制到 tmp、2. DST 复制到 src、3. tmp 已复制到 dst。 但不执行 PARAM3。 链接功能将被执行。

需要您帮助我找到原因。

此致、

Shawn

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

    嗨、团队:

    我已经启用了连接功能、它可以传输数据。 现在问题是 dmaCh1断言中断、但它无法运行在中断回调函数中。

    此致、

    Shawn

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

    您好、Shawn:

    唯一可能的原因是 dmaCh1和 tcc1不相等、因为 EDMA_enableEvtIntrRegion 使用了 dmaCh1、其中 EDMA_readIntrStatusRegion 和 EDMA_registerIntr  使用 tcc1。

    此致、

    Ming