|
Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
|
Non-blocking hardware ISR adapter for SPI controllers and DMA completion interrupts. Ingests SPI frames from interrupt context and posts typed events into Corium lock-free ring buffer. More...
#include <SpiAdapter.hpp>
Collaboration diagram for corium::embedded::SpiIsrAdapter< EventVariant >:Public Member Functions | |
| template<typename TargetEvent = SpiFrame<32>> | |
| void | postBufferFromIsr (uint8_t csId, std::span< const uint8_t > rxBytes, uint8_t status=0, EventPriority priority=EventPriority::Normal) noexcept |
| Ingest raw SPI RX bytes from a DMA buffer into a typed event and post into sink. | |
| template<typename TargetEvent = SpiFrame<32>, size_t MaxRxSize = 32> | |
| void | postFromIsr (const SpiFrame< MaxRxSize > &frame, EventPriority priority=EventPriority::Normal) noexcept |
| Post an SPI frame directly from ISR context into the event sink. | |
| SpiIsrAdapter (EventSinkT< EventVariant > sink) noexcept | |
Non-blocking hardware ISR adapter for SPI controllers and DMA completion interrupts. Ingests SPI frames from interrupt context and posts typed events into Corium lock-free ring buffer.
|
inlineexplicitnoexcept |
|
inlinenoexcept |
Ingest raw SPI RX bytes from a DMA buffer into a typed event and post into sink.
| TargetEvent | User event type constructible from SpiFrame. |
| csId | Chip-select ID of the SPI slave. |
| rxBytes | Span of received bytes. |
| status | Hardware status code. |
| priority | Event priority. |
|
inlinenoexcept |