|
TinyRobotics
|
Concurrency and cooperative multitasking utilities. More...

Classes | |
| class | BufferRP2040T< T > |
| Buffer implementation which is based on a RP2040 queue. This class is intended to be used to exchange data between the 2 different cores. Multi-core and IRQ safe queue implementation! More... | |
| class | NoInterruptHandler |
| Disable, enable interrupts (only on the actual core) More... | |
| class | MutexRP2040 |
| Mutex API for non IRQ mutual exclusion between cores. Mutexes are application level locks usually used protecting data structures that might be used by multiple threads of execution. Unlike critical sections, the mutex protected code is not necessarily required/expected to complete quickly, as no other sytem wide locks are held on account of an acquired mutex. More... | |
| class | BufferRTOS< T, TAllocator > |
| Buffer implementation which is using a FreeRTOS StreamBuffer. The default allocator uses psram is available. More... | |
| class | MutexRTOS |
| Mutex implemntation using FreeRTOS. More... | |
| class | MutexRecursiveRTOS |
| Recursive Mutex implemntation using FreeRTOS. More... | |
| class | QueueRTOS< T, TAllocator > |
| FIFO Queue whch is based on the FreeRTOS queue API. The default allocator will allocate the memory from psram if available. More... | |
| class | Task |
| FreeRTOS task. More... | |
| class | SynchronizedQueue< T, TMutex, TAllocator > |
| FIFO Queue which is based on a List that is thread save. More... | |
| class | LockGuard |
| RAII implementaion using a Mutex: Only a few microcontrollers provide lock guards, so I decided to roll my own solution where we can just use a dummy Mutex implementation that does nothing for the cases where this is not needed. More... | |
| class | MutexBase |
| Empty Mutex implementation which does nothing. More... | |
| class | SynchronizedBuffer< T > |
| Wrapper class that can turn any Buffer into a thread save implementation. More... | |
| class | SynchronizedStream |
| Wrapper class that can turn any Stream into a thread save implementation. This is done by adding a Mutex to the Stream. The read and write operations are buffered and the access to the stream is protected by the Mutex. More... | |
Typedefs | |
| using | Mutex = MutexRP2040 |
| Default Mutex implementation using RP2040 Pico SDK. | |
| template<class T , class TAllocator = AllocatorPSRAM<T>> | |
| using | SynchronizedBufferRTOS = BufferRTOS< T, TAllocator > |
| Template alias for RTOS-based synchronized buffer. | |
Concurrency and cooperative multitasking utilities.