oveRTOS C API
Embedded RTOS framework — build system, configuration, and portable C API
Loading...
Searching...
No Matches
oveRTOS C API Reference

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:

#include <ove/ove.h>
Umbrella header — single include for all oveRTOS public APIs.

API Modules

Core kernel primitives

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

Board, hardware I/O, and bus drivers

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

Storage, filesystem, and NVS

Module Header Description
File System ove/fs.h Filesystem abstraction (VFS)
Non-Volatile Storage ove/nvs.h Non-volatile key-value storage

Audio and ML

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)

Networking

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

Power management

Module Header Description
Power Management ove/pm.h Sleep states, wake sources, power domains, statistics

User interface and diagnostics

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

Framework internals

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

Allocation Strategies

Every object-bearing module supports two allocation modes:

  • Heap mode (default) – _create() / _destroy() with dynamic allocation.
  • Zero-heap mode (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.

Further Documentation

For setup, build, configuration, and example walkthroughs, see the oveRTOS documentation site.