Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
Loading...
Searching...
No Matches
corium::embedded::DmaUartAdapter< EventVariant, BufferSize > Class Template Reference

Non-blocking hardware ISR adapter for DMA UART controllers. More...

#include <DmaUartAdapter.hpp>

+ Collaboration diagram for corium::embedded::DmaUartAdapter< EventVariant, BufferSize >:

Public Member Functions

 DmaUartAdapter (EventSinkT< EventVariant > sink) noexcept
 
template<typename TargetEvent >
void processFromIsr (std::size_t currentDmaWriteIndex, EventPriority priority=EventPriority::Normal)
 Process newly received DMA bytes and post constructed event into sink.
 
const DmaUartRxBuffer< BufferSize > & rxBuffer () const noexcept
 Access const circular DMA RX buffer.
 
DmaUartRxBuffer< BufferSize > & rxBuffer () noexcept
 Access underlying circular DMA RX buffer.
 

Detailed Description

template<typename EventVariant, std::size_t BufferSize = 512>
class corium::embedded::DmaUartAdapter< EventVariant, BufferSize >

Non-blocking hardware ISR adapter for DMA UART controllers.

Constructor & Destructor Documentation

◆ DmaUartAdapter()

template<typename EventVariant , std::size_t BufferSize = 512>
corium::embedded::DmaUartAdapter< EventVariant, BufferSize >::DmaUartAdapter ( EventSinkT< EventVariant >  sink)
inlineexplicitnoexcept

Member Function Documentation

◆ processFromIsr()

template<typename EventVariant , std::size_t BufferSize = 512>
template<typename TargetEvent >
void corium::embedded::DmaUartAdapter< EventVariant, BufferSize >::processFromIsr ( std::size_t  currentDmaWriteIndex,
EventPriority  priority = EventPriority::Normal 
)
inline

Process newly received DMA bytes and post constructed event into sink.

Template Parameters
TargetEventUser event constructible from std::span<const uint8_t>.
Parameters
currentDmaWriteIndexHardware DMA write pointer position.
priorityPriority to assign to generated events.

◆ rxBuffer() [1/2]

template<typename EventVariant , std::size_t BufferSize = 512>
const DmaUartRxBuffer< BufferSize > & corium::embedded::DmaUartAdapter< EventVariant, BufferSize >::rxBuffer ( ) const
inlinenoexcept

Access const circular DMA RX buffer.

◆ rxBuffer() [2/2]

template<typename EventVariant , std::size_t BufferSize = 512>
DmaUartRxBuffer< BufferSize > & corium::embedded::DmaUartAdapter< EventVariant, BufferSize >::rxBuffer ( )
inlinenoexcept

Access underlying circular DMA RX buffer.


The documentation for this class was generated from the following file: