:smileyhappy: No, it's wrong disigion - if you alway know how many bytes you will receive, you just don't need ring buffer (look at "edma_transfer" uart example). When we use ring buffer it's mean - we don't know how many data we will receive and some time we may lost some bytes (ex. on heavy loaded system), but in this case we alway can get last X bytes (where X - size of ring buffer).
One moment is - as i see in "edma_rb_transfer" example every time when
EXAMPLE_RING_BUFFER_SIZE - EDMA_GetRemainingMajorLoopCount(EXAMPLE_UART_DMA_BASEADDR, UART_RX_DMA_CHANNEL) == ringBufferIndex
we can't distinguish have we empty or we have full ring buffer.
At second, does not take into account ring buffer overflow. Let's say we have 255 bytes-len ring buffer and it contain 10 bytes of data. And we receive 265 bytes. In this case EXAMPLE_GetRingBufferLengthEDMA will return 20, but ring buffer is full and contain 255 bytes.