我的目标是通过 DMA 将8个 ADC 值的数据包传输到长度为1024的循环缓冲器。 到循环缓冲器的数据传输应该能够在全部8个 ADC 值的任何位置停止、并且被重新路由至第二个缓冲器以循环填充。
我尝试使用8 (16位值)的 BURST_SIZE 和128个突发(8*128=1024)的 TRANSFLE_SIZE。 当我想要切换缓冲区时、我更改了 SRC_beg_ADDR_SHADDR 和 SRC_ADDR_SHADOW。 由于当 transfer_count 为零时这些数据只能读取,因此我向 transfer_count 写入了“零”。 遗憾的是、我注意到我写入 transfer_count 的值被忽略、尽管在文档中被声明为 R/W 值。 因此、在切换之前、DMA 始终继续写入、直至缓冲区结束。 这不是所需的。
您对如何实现这一目标有什么建议吗?
此致、
Bernd