All notable changes to this project/module will be documented in this file.
The format is based on Keep a Changelog, and this project/module adheres to Semantic Versioning.
- New API functions for only peeking into buffer
- Clean up comments and code
- Fixed bug with adding and getting data to/from buffer
- Added option to initialize ring buffer completely statically
- New API functions for getting states of ring buffer
- Multithread protection support
- New API functions for get full and empty state of buffers
- Fixing compiler warnigns on implicit type conversions
- Possible compiler out of order execution (added compiler barriers)
- Race conditions (added atomic counter)
- New API functions to add/get many items in single call
- Time execution optimization
- Cleaning code, spliting larger function blocks into smaller
- Various compiler warnings
- Replace version notes with changelog
- Updated readme
- Added protection for multiple init calls
- Added detailed description about module limitations
- Removed unused function
- Change return status enumeration. Now supports masking error codes
- Removed not needed include files
Complete rework of Ring Buffer module. Inspiration of new API was taken from CMSIS RTOS Queues.
- Optional buffer item size
- FIFO support
- Override mode
- Dynamic or static allocation of memory
- Buffer name for debugging purposes
- Two types of buffer access: NORMAL (for fifo) & INVERS (for filters)
- Get functions to acquire name, taken items, free items, size of buffer, size of item
- Added module version
- Added copyright notice
- Change is_init func in to return status
- iss_init returns status
- Change "get" functions to return status and return value of buffer via arguments
- Initial implementation of ring buffer
- Supported three data types: uint32_t, int32_t and float32_t
- Two types of buffer access: NORMAL & INVERS