readme
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
Circular byte buffer
|
||||
====================
|
||||
|
||||
This is a circular buffer implementation, useful for embedded systems (buffer for UART RX queue etc).
|
||||
This is a circular buffer implementation, useful mainly for embedded systems (buffer for UART RX/TX queues etc).
|
||||
|
||||
It should be reliable with producent / consumer threads (no race conditions, as no length variable is used).
|
||||
|
||||
|
||||
Usage
|
||||
@@ -9,25 +11,34 @@ Usage
|
||||
|
||||
```c
|
||||
#include <stdint.h>
|
||||
#include "circbuf.h"
|
||||
|
||||
uint8_t buffer[32]; // array backing the buffer
|
||||
|
||||
CircularBuffer cb; // buffer instance
|
||||
circbuf_t cb; // buffer instance
|
||||
|
||||
void main()
|
||||
{
|
||||
cbuf_init(&cb, buffer, 32); // init the buffer
|
||||
char c;
|
||||
cbuf_init(&cb, 32); // init the buffer
|
||||
|
||||
// now it's ready for use!
|
||||
|
||||
cbuf_write(&cb, 'A');
|
||||
|
||||
if (cbuf_read(&cb, &c)) {
|
||||
printf("%c", c);
|
||||
}
|
||||
|
||||
cbuf_deinit(&cb); // free the backing array (in embedded system you don't usually need to, allocate once and keep it)
|
||||
}
|
||||
```
|
||||
|
||||
Many function return success flag, so make sure to check the return values.
|
||||
Most functions return a success flag (true - success), so make sure to check the return values.
|
||||
|
||||
False is returned on buffer overflow / underflow, attempted read past available data size etc. See the header file for details.
|
||||
False is returned on buffer overflow / underflow. See the header file for details.
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Do whatever you want with the code.
|
||||
I don't care, public domain (I guess).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user