|
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 minimal runtime overhead over the native API.
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 |
| Time | ove/time.h | Monotonic clock and delays |
| Module | Header | Description |
|---|---|---|
| Board Initialization | ove/board.h | Board initialisation and identification |
| Board Type Definitions | ove/board_types.h | Board descriptor and LED descriptor struct definitions |
| GPIO | ove/gpio.h | General-purpose I/O |
| LED | ove/led.h | On-board LED control |
| Watchdog | ove/watchdog.h | Hardware watchdog timer |
| Console | ove/console.h | Serial console I/O |
| UART | ove/uart.h | UART serial bus driver |
| SPI | ove/spi.h | SPI master bus driver |
| I2C | ove/i2c.h | I2C master bus driver |
| I2S | ove/i2s.h | I2S / SAI audio bus driver with DMA double buffering |
| Module | Header | Description |
|---|---|---|
| File System | ove/fs.h | Filesystem abstraction (VFS) |
| Non-Volatile Storage | ove/nvs.h | Non-volatile key-value storage |
| Module | Header | Description |
|---|---|---|
| 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 |
| ML Inference | ove/infer.h | ML inference engine (LiteRT / TensorFlow Lite Micro) |
| Module | Header | Description |
|---|---|---|
| Networking | ove/net.h | BSD-like sockets, DNS, network interface |
| TLS | ove/net_tls.h | TLS sessions over TCP (mbedTLS) |
| HTTP Client | ove/net_http.h | HTTP/1.1 client |
| MQTT Client | ove/net_mqtt.h | MQTT 3.1.1 client |
| HTTP Server | ove/net_httpd.h | Embedded HTTP server with routing and WebSocket |
| SNTP Client | ove/net_sntp.h | Simple NTP time synchronisation |
| Module | Header | Description |
|---|---|---|
| Power Management | ove/pm.h | Sleep states, wake sources, power domains, statistics |
| Module | Header | Description |
|---|---|---|
| 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 |
| LVGL Internal Helpers | ove/lvgl_internal.h | LVGL display integration hooks |
| Module | Header | Description |
|---|---|---|
| oveRTOS Umbrella Header | ove/ove.h | Umbrella header that pulls in every subsystem |
| Storage Types | ove/storage.h | Backend-specific opaque storage types |
| OVE_*_DEFINE Macros | ove/storage.h | OVE_*_DEFINE() instance macros |
| OVE_*_DEFINE_STATIC Macros | ove/storage.h | OVE_*_DEFINE_STATIC() file-scope declarations |
| Heap Gates | ove/storage.h | OVE_HEAP_* gates selecting heap vs. zero-heap bodies |
| 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.