Virtual memory allocator that uses SPI (serial) RAM (i.e. the 23LC series from Microchip) as memory pool.
More...
|
| SPIRAMVAllocP (VPtrSize ps, bool la, uint8_t cs, SerialRam::ESPISpeed s) |
| Constructs (but not initializes) the allocator. More...
|
|
| SPIRAMVAllocP (VPtrSize ps) |
| Constructs (but not initializes) the allocator. More...
|
|
| SPIRAMVAllocP (void) |
| Constructs (but not initializes) the allocator.
|
|
void | setSettings (bool la, uint8_t cs, SerialRam::ESPISpeed s) |
| Configures the allocator. More...
|
|
VPtr< T, SPIRAMVAllocP< Properties > > | alloc (VPtrSize size=sizeof(T)) |
| Allocates memory from the linked virtual memory allocator. More...
|
|
void | free (VPtr< T, SPIRAMVAllocP< Properties > > &p) |
| Frees a block of virtual memory. More...
|
|
VPtr< T, SPIRAMVAllocP< Properties > > | newClass (VPtrSize size=sizeof(T)) |
| Allocates memory and constructs data type. More...
|
|
void | deleteClass (VPtr< T, SPIRAMVAllocP< Properties > > &p) |
| Destructs data type and frees memory. More...
|
|
VPtr< T, SPIRAMVAllocP< Properties > > | newArray (VPtrSize elements) |
| Allocates and constructs an array of objects. More...
|
|
void | deleteArray (VPtr< T, SPIRAMVAllocP< Properties > > &p) |
| Destructs and frees an array of objects. More...
|
|
void | start (void) |
| Starts the allocator. More...
|
|
void | stop (void) |
| Deinitializes the allocator. More...
|
|
void | setPoolSize (VPtrSize ps) |
| Sets the total size of the memory pool. More...
|
|
VPtrNum | allocRaw (VPtrSize size) |
| Allocates a piece of raw (virtual) memory. More...
|
|
void | freeRaw (VPtrNum ptr) |
| Frees a memory block for re-usage. More...
|
|
void * | read (VPtrNum p, VPtrSize size) |
| Reads a raw block of (virtual) memory. More...
|
|
void | write (VPtrNum p, const void *d, VPtrSize size) |
| Writes a piece of raw data to (virtual) memory. More...
|
|
void | flush (void) |
| Synchronizes all big memory pages. More...
|
|
void | clearPages (void) |
| Synchronizes and clears all big memory pages. More...
|
|
uint8_t | getFreeBigPages (void) const |
|
uint8_t | getUnlockedSmallPages (void) const |
| Returns amount of small pages which are not locked.
|
|
uint8_t | getUnlockedMediumPages (void) const |
| Returns amount of medium pages which are not locked.
|
|
uint8_t | getUnlockedBigPages (void) const |
| Returns amount of big pages which are not locked.
|
|
uint8_t | getSmallPageCount (void) const |
| Returns total amount of small pages.
|
|
uint8_t | getMediumPageCount (void) const |
| Returns total amount of medium pages.
|
|
uint8_t | getBigPageCount (void) const |
| Returns total amount of big pages.
|
|
VirtPageSize | getSmallPageSize (void) const |
| Returns the size of a small page.
|
|
VirtPageSize | getMediumPageSize (void) const |
| Returns the size of a medium page.
|
|
VirtPageSize | getBigPageSize (void) const |
| Returns the size of a big page.
|
|
VPtrSize | getPoolSize (void) const |
| Returns the size the memory pool. More...
|
|
VPtrSize | getMemUsed (void) const |
| Returns total memory used.
|
|
VPtrSize | getMaxMemUsed (void) const |
| Returns the maximum memory used so far.
|
|
uint32_t | getBigPageReads (void) const |
| Returns the times big pages were read (swapped).
|
|
uint32_t | getBigPageWrites (void) const |
| Returns the times big pages written (synchronized).
|
|
uint32_t | getBytesRead (void) const |
| Returns the amount of bytes read as a result of page swaps.
|
|
uint32_t | getBytesWritten (void) const |
| Returns the amount of bytes written as a results of page swaps.
|
|
void | resetStats (void) |
| Reset all statistics. Called by start()
|
|
template<typename Properties = DefaultAllocProperties>
class virtmem::SPIRAMVAllocP< Properties >
Virtual memory allocator that uses SPI (serial) RAM (i.e. the 23LC series from Microchip) as memory pool.
This class uses an external SRAM chip as a memory pool. Interfacing occurs through the serialram library and must be installed in order to use this allocator.
- Template Parameters
-
- See also
- Using virtual memory (tutorial) and MultiSPIRAMVAllocP
- Examples:
- spiram_simple.ino.