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
"Keep your ISRs short" is the most repeated piece of firmware advice and the least actionable, because it never says short compared to what. The useful form is a consequence of how the NVIC works rather than a style preference: every microsecond a handler runs is a microsecond added to the worst-case latency of every interrupt at the same or a less urgent priority. A 200 µs handler is not "a bit slow". It is a 200 µs latency tax levied on most of the system, paid every time that handler runs, and it does not appear in any register you can read.
A stack grows and shrinks at one end; a queue adds