
The Circular Buffer Module is designed to allow the user to simply create circular buffer objects of self designated size for applications where data buffering is needed. The buffer is designed to hold the data type 'unsigned char' which is defined as a new data type 'CBUFF'. This allows for optimal memory usage on most embedded systems and flexibility for the user. The design is generic i.e. it is not targeted at any specific processor architecture or family of microcontrollers, allowing it to be used anywhere. The efficiency of the code and its performance is, therefore, very much dependant on the C compiler used to compile the code.
Supports up to 16 independent circular buffers
Buffers store 'unsigned char' data type data (typically 8-bit data)
Buffer size up to 'unsigned int' supported (typically 65536 bytes)
Fully re-entrant on pre-emptive systems
Supports put/get of single bytes or multiple bytes
Supports flushing of individual buffers
Remaining space calculation supported for individual buffers
Fill level calculation supported for individual buffers
Support for peeking head or tail (returns head/tail value without removing data)
Support for returning last byte obtained through 'get'
Support for removing last byte written through 'put'
All memory allocation handled by the module's user
All buffers protected from underflow/overflow
Very small RAM footprint
Fully portable ANSI C implementation, suitable for embedded microcontroller systems
A fully tested stable release is always available under the downloads link on http://kenai.com/projects/cbuff-module/downloads.
Online Documentation for the CBUFF Module
Documentation of the API for the CBUFF module can be
reviewed here: http://cbuff-module.kenai.com/doxygen
or can be built from the git repository.
Return to CBUFFs project home page.
Updated 1st November 2011