From 6f30e92c7aecc80d9fdf23e462a5128c07446f2f Mon Sep 17 00:00:00 2001 From: xoviat Date: Sun, 30 Jul 2023 10:57:17 -0500 Subject: [PATCH] stm32/dma: don't write to full ringbuf --- embassy-stm32/src/dma/ringbuffer.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/embassy-stm32/src/dma/ringbuffer.rs b/embassy-stm32/src/dma/ringbuffer.rs index e9d33021..800f1906 100644 --- a/embassy-stm32/src/dma/ringbuffer.rs +++ b/embassy-stm32/src/dma/ringbuffer.rs @@ -243,6 +243,8 @@ impl<'a, W: Word> WritableDmaRingBuffer<'a, W> { Ok((len, self.cap() - (start - self.end))) } + } else if start == self.end && dma.get_complete_count() == 0 { + Ok((0, 0)) } else if start <= self.end && self.end + buf.len() < self.cap() { // The occupied portion in the ring buffer DOES NOT wrap // and copying elements into the buffer WILL NOT cause it to