您好,
我正在使用 TM4C1294微控制器上的UDMA外设将数据从UART FIFO自动移动到内存中的64字节缓冲区。 我将UDMA配置为ping-pong缓冲区,当我获得恒定的数据流时,这应该很有效,因为当主缓冲区已满,UDMA自动切换到填充备用缓冲区时,会触发中断。 但是,数据流将会停止,但其中一个缓冲区中可能会留下数据。 发生这种情况时,我想提前交换缓冲区,以便将来的传入字节进入空缓冲区。 然后我可以安全地挖掘部分已满的缓冲区,复制我需要的数据,然后快乐地工作。
我的问题是:触发这种缓冲区交换行为的最佳方式是什么? 它是否像在 DMA通道控制字中将XFERMODE设置为STOP一样简单? 如果是,如果我将某个字节设置为停止,而UDMA正在传输一个字节,那么是否有丢失该字节的危险? 或者它是否会自动交换到另一个缓冲区并继续将传入数据添加到该缓冲区?
谢谢!