idfxx 1.0.0
Modern C++23 components for ESP-IDF
Loading...
Searching...
No Matches
idfxx::dma_allocator< T > Struct Template Reference

STL-compatible allocator for DMA-capable memory. More...

Public Types

using value_type = T
 The type of object to allocate.
 

Public Member Functions

 dma_allocator ()=default
 Default constructor.
 
template<typename U >
constexpr dma_allocator (const dma_allocator< U > &) noexcept
 Rebinding copy constructor.
 
T * allocate (size_t n)
 Allocates DMA-capable memory for n objects of type T.
 
void deallocate (T *p, size_t) noexcept
 Deallocates memory previously allocated by this allocator.
 

Detailed Description

template<typename T>
struct idfxx::dma_allocator< T >

STL-compatible allocator for DMA-capable memory.

This allocator uses the ESP-IDF heap_caps API to allocate memory that is suitable for DMA transfers. It can be used with standard containers to create buffers for SPI, I2S, LCD, and other DMA-capable peripherals.

Template Parameters
TThe type of object to allocate.

Definition at line 222 of file memory.hpp.

Member Typedef Documentation

◆ value_type

template<typename T >
using idfxx::dma_allocator< T >::value_type = T

The type of object to allocate.

Definition at line 223 of file memory.hpp.

Constructor & Destructor Documentation

◆ dma_allocator() [1/2]

template<typename T >
idfxx::dma_allocator< T >::dma_allocator ( )
default

Default constructor.

◆ dma_allocator() [2/2]

template<typename T >
template<typename U >
constexpr idfxx::dma_allocator< T >::dma_allocator ( const dma_allocator< U > &  )
inlineconstexprnoexcept

Rebinding copy constructor.

Template Parameters
UThe source allocator's value type.

Definition at line 234 of file memory.hpp.

Member Function Documentation

◆ allocate()

template<typename T >
T * idfxx::dma_allocator< T >::allocate ( size_t  n)
inline

Allocates DMA-capable memory for n objects of type T.

Parameters
nThe number of objects to allocate space for.
Returns
A pointer to the allocated memory.
Note
Throws std::bad_alloc only when CONFIG_COMPILER_CXX_EXCEPTIONS is enabled in menuconfig. When exceptions are disabled, calls esp_system_abort() on failure.
Exceptions
std::bad_allocIf allocation fails and exceptions are enabled.

Definition at line 247 of file memory.hpp.

◆ deallocate()

template<typename T >
void idfxx::dma_allocator< T >::deallocate ( T *  p,
size_t   
)
inlinenoexcept

Deallocates memory previously allocated by this allocator.

Parameters
pPointer to the memory to deallocate.

Definition at line 264 of file memory.hpp.


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