|
Comms CCF
This is a simple communication layer based on COBS, CBOR and FNV-1A
|
Just using checksumless zero-length packets to indicate error for now.
Just using checksumless zero-length packets to indicate error for now.
Just using checksumless zero-length packets to indicate error for now.
Currently this was written for architectures which don't reorder reads/writes, in my case small microcontrollers without caches and write buffers, but needs to be fixed by using atomics on the cursors and the buffer to ensure the cursors point to valid data (by the time the updated cursor is read, the value at that location has been written).
This does not expose an interface for DMA engines, but this could fairly easily be added by getting the current next contiguous unused part of the buffer (i.e. the part before any wrapping) and passing that to the DMA engine.
Forward and bidirectional iterator/range for Iterator/Frame.