|
oveRTOS C API
Embedded RTOS framework — build system, configuration, and portable C API
|
oveRTOS is an embedded RTOS framework that provides a unified build system, configuration, and portable C API across FreeRTOS, Apache NuttX, Zephyr RTOS, and POSIX. This reference documents the C API. The correct backend implementation is selected at compile time via Kconfig preprocessor symbols, with no virtual dispatch and no runtime overhead.
Include every module at once with the umbrella header:
| Module | Header | Description |
|---|---|---|
| Types | ove/types.h | Common types and error codes |
| Application lifecycle | ove/app.h | Application entry point and scheduler start |
| Thread management | ove/thread.h | Thread lifecycle, sleep, yield, priority |
| Synchronisation primitives | ove/sync.h | Mutexes, semaphores, events, condition variables |
| Message queue | ove/queue.h | Fixed-size item FIFO message queues |
| Software timer | ove/timer.h | Software timers |
| Event Group | ove/eventgroup.h | Multi-bit event flags |
| Work Queue | ove/workqueue.h | Deferred work on a dedicated thread |
| Stream | ove/stream.h | Byte-stream ring buffers |
| Audio graph engine | ove/audio.h | Audio graph engine (sources, processors, sinks) |
| Audio node types and built-in factories | ove/audio_node.h | Node types, vtable, and built-in processing nodes |
| Audio device node factories | ove/audio_device.h | Transport abstraction and device node factories |
| File System | ove/fs.h | Filesystem abstraction (VFS) |
| Console | ove/console.h | Serial I/O |
| Time | ove/time.h | Monotonic clock and delays |
| Board Initialization | ove/board.h | Board initialisation and identification |
| GPIO | ove/gpio.h | General-purpose I/O |
| LED | ove/led.h | On-board LED control |
| Non-Volatile Storage | ove/nvs.h | Non-volatile key-value storage |
| Watchdog | ove/watchdog.h | Hardware watchdog timer |
| Shell | ove/shell.h | Interactive command shell |
| Logging | ove/log.h | Compile-time filtered logging macros |
| LVGL Display Integration | ove/lvgl.h | Unified LVGL display include |
| Storage Types | ove/storage.h | Backend-specific storage types and static macros |
| BSP Compatibility Shim | ove/bsp.h | Legacy BSP compatibility shim |
Every object-bearing module supports two allocation modes:
_create() / _destroy() with dynamic allocation.CONFIG_OVE_ZERO_HEAP) – _init() / _deinit() with caller-supplied static buffers. The OVE_*_DEFINE_STATIC() macros combine storage declaration and init into a single file-scope declaration.For setup, build, configuration, and example walkthroughs, see the oveRTOS documentation site.