Los buffers de anillo son los elegidos por la mayoría de los programadores integrados veteranos para comunicaciones asíncronas. Supongamos que los datos llegan a UART desde una sola fuente y solo cuando se solicita un msg (Master- > Slave, Slave- > Master), ya que los códigos son de naturaleza secuencial, solo podemos implementar una matriz ordinaria (tamaño máximo de datos recibidos) para contener los datos recibidos. Al igual que:
#define MAX_SIZE 8
U8 RxBuff[MAX_SIZE]
Una vez que se hayan procesado y respondido los datos, el maestro y el esclavo pueden restablecer el RxBuff. No hay necesidad de un búfer de anillo.
Pero esto me hizo pensar, ¿los Ring Buffers ofrecen la ventaja de una vida SRAM más larga? He leído que los recuerdos como Flash, Ram tienen ciclos de escritura limitados pero ciclos de lectura infinitos. Al implementar un búfer de anillo que circula alrededor de las ubicaciones de RAM cada vez que llegan los datos, ¿tal implementación, al reducir los ciclos de escritura para las ubicaciones de memoria constante de RxBuff cada vez que se reciben los datos, ofrece una vida útil mejorada de la memoria?
¿O hay otras razones por las que se prefieren los buffers de anillo?