Expand description
Embassy-based async runtime hosted on the oveRTOS C substrate.
Activated by the async Cargo feature combined with C-side
CONFIG_OVE_ASYNC=y (build.rs detects this and emits
cfg(has_async)). The module provides:
Executor— wrapsembassy_executor::raw::Executorand blocks onove_event_waitbetween polls. Yields cleanly to the underlying RTOS scheduler on FreeRTOS / Zephyr / NuttX; on POSIX blocks on a pthread condvar. Replaces the upstream__pendersymbol with one that signals anove_eventvia the right thread-vs-ISR variant.critical_section::Implbacked byove_irq_lock/ove_irq_unlockon every target.embassy_time_driver::Driverbacked byove_time_get_us+ove_timer_*_ns.- Async wrappers around the comm primitives (
AsyncStream,AsyncQueue,AsyncEventGroup,AsyncSemaphore,AsyncUart,AsyncInput) that ride on the C-level_set_notifyhooks.
Re-exports§
pub use eventgroup::AsyncEventGroup;pub use executor::Executor;pub use gpio::AsyncInput;pub use i2c::AsyncI2c;pub use queue::AsyncQueue;pub use semaphore::AsyncSemaphore;pub use spi::AsyncSpi;pub use stream::AsyncStream;pub use uart::AsyncUart;
Modules§
- eventgroup
- Async wrapper around
crate::EventGroupusingove_eventgroup_set_notify. - executor
- oveRTOS-native embassy executor.
- gpio
- Async GPIO input wrapper using the existing
ove_gpio_irq_registercallback path — no new C-side API needed. - i2c
- Async I2C bus wrapper. See
super::spifor the design notes — same pattern, with anembedded_hal_async::i2c::I2c<SevenBitAddress>impl when theembedded-hal-asyncfeature is enabled. - queue
- Async wrapper around
crate::Queueusingove_queue_set_notify. - semaphore
- Async wrapper around
crate::Semaphoreusingove_sem_set_notify. - spi
- Async SPI bus wrapper.
- stream
- Async wrapper around
crate::Streamusing the C-levelove_stream_set_notifynotify hook. - uart
- Async wrapper around
crate::Uartusingove_uart_set_rx_notify, which delegates to the underlying RX stream’s notify hook.
Structs§
- Spawner
- Re-export of
embassy_executor::Spawner. The Spawner returned by the executor’s run-loop init closure is this type. Handle to spawn tasks into an executor.