Boost.CircularBuffer
boost::circular_buffer is a fixed-capacity ring buffer that provides $O(1)$ insertion and
boost::circular_buffer is a fixed-capacity ring buffer that provides $O(1)$ insertion and
A stack grows and shrinks at one end; a queue adds
A DMA controller is not an accelerator bolted onto a peripheral. It is a second bus master: a small, dumb machine that sits on the same bus matrix as the Cortex-M4 and, when a peripheral raises a request line, performs the load and the store that your interrupt handler would otherwise have performed. It has no idea what the data means. It knows a source address, a destination address, a count, and whether to increment each pointer.