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.

[参考译文] AM6421:BCDMA 拆卸齐平

Guru**** 2448780 points
Other Parts Discussed in Thread: AM6421

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1546799/am6421-bcdma-teardown-flush

器件型号:AM6421


工具/软件:

大家好!

 我正在寻找帮助、以防止 AM6421 器件在拆卸时发生 BCDMA 刷新。

 在我们的设计中、我们使用 4D 传输请求配置将 BCDMA 传输从 R5F TCM 中的缓冲区(包装队列)配置为 MSRAM 中的缓冲区(包装队列)。 我们使用 4D TD 配置、以便在运行高速实时 R5F 进程(仅需要在适当的时间处理触发传输)之前、预先定义源缓冲区和目标缓冲区上的队列绕回。 我们能够成功地使用此配置以满足我们的传输要求。 但是、 我们的问题是在完成后拆分配置、因为它会使 BCDMA 自动刷新任何未触发的传输。 这是一个问题的原因有以下几个:  

  1. 我们的设计处理相对较少的数据量(~800 字节)、传输的数据量可能很大(百万倍以上)。 如果传输数量如此之多、并且 4D 配置的分辨率如此之高、则可能无法根据所需的传输数量对其进行配置。 因此、它必须更大、有时甚至很大、才能正常工作。 发生这种情况时、拆卸将自动清除额外的(不需要的)传输、并可能损坏目标缓冲区(包装队列)中的有效数据。
  2. 如果满足某个状态、我们的设计可能会过早停止。 此时、不需要进行其余的传输。 如上所述、拆卸不仅会清除不需要的数据、而且可能需要很长的时间才能完成(可能需要数百万次传输)。 这种延迟是不希望出现的、尤其是因为它适用于我们不希望出现的传输。

 因此、我的问题是:

  1. 是否可以在不导致剩余传输刷新的情况下关闭 BCDMA 配置? 如果是、如何实现?
  2. 如果不可能、是否有替代方案?

 下面是显示该问题的最小化示例:

e2e.ti.com/.../bcdma_5F00_test.cpp

 在 R5F 内核上运行上述脚本会产生以下输出:

  1. 第一组数据显示传输前的源/目标缓冲区值。
  2. 第二组数据显示完成 (3) 次传输后的源/目标缓冲区值。
  3. 第三组数据显示拆卸后的源/目标缓冲区值(5 次配置的传输)。

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

    您好、 Chris Day、

    我正在查看您的查询,你可能会期待在一两天内回复.

    此致、

    Anil.

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

    您好、 Chris Day、

    我觉得我们没有 正确地进行 DMA 通道拆卸过程。

    我查看了您的代码、我们仅在执行通道被禁用的通道。

    您能否确认您是如何进行 DMA 拆卸通道的?

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

    在这个问题上是否有任何进展?

    此致、

    Chris