请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM6421工具/软件:
大家好!
我正在寻找帮助、以防止 AM6421 器件在拆卸时发生 BCDMA 刷新。
在我们的设计中、我们使用 4D 传输请求配置将 BCDMA 传输从 R5F TCM 中的缓冲区(包装队列)配置为 MSRAM 中的缓冲区(包装队列)。 我们使用 4D TD 配置、以便在运行高速实时 R5F 进程(仅需要在适当的时间处理触发传输)之前、预先定义源缓冲区和目标缓冲区上的队列绕回。 我们能够成功地使用此配置以满足我们的传输要求。 但是、 我们的问题是在完成后拆分配置、因为它会使 BCDMA 自动刷新任何未触发的传输。 这是一个问题的原因有以下几个:
- 我们的设计处理相对较少的数据量(~800 字节)、传输的数据量可能很大(百万倍以上)。 如果传输数量如此之多、并且 4D 配置的分辨率如此之高、则可能无法根据所需的传输数量对其进行配置。 因此、它必须更大、有时甚至很大、才能正常工作。 发生这种情况时、拆卸将自动清除额外的(不需要的)传输、并可能损坏目标缓冲区(包装队列)中的有效数据。
- 如果满足某个状态、我们的设计可能会过早停止。 此时、不需要进行其余的传输。 如上所述、拆卸不仅会清除不需要的数据、而且可能需要很长的时间才能完成(可能需要数百万次传输)。 这种延迟是不希望出现的、尤其是因为它适用于我们不希望出现的传输。
因此、我的问题是:
- 是否可以在不导致剩余传输刷新的情况下关闭 BCDMA 配置? 如果是、如何实现?
- 如果不可能、是否有替代方案?
下面是显示该问题的最小化示例:
e2e.ti.com/.../bcdma_5F00_test.cpp
在 R5F 内核上运行上述脚本会产生以下输出:
- 第一组数据显示传输前的源/目标缓冲区值。
- 第二组数据显示完成 (3) 次传输后的源/目标缓冲区值。
- 第三组数据显示拆卸后的源/目标缓冲区值(5 次配置的传输)。
