virtmem
virtual memory library for Arduino
|
Virtual allocator that uses multiple SRAM chips (i.e. 23LC series from Microchip) as memory pool. More...
#include <spiram_alloc.h>
Public Member Functions | |
MultiSPIRAMVAllocP (void) | |
Public Member Functions inherited from virtmem::VAlloc< Properties, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > | |
VPtr< T, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > | alloc (VPtrSize size=sizeof(T)) |
Allocates memory from the linked virtual memory allocator. More... | |
void | free (VPtr< T, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > &p) |
Frees a block of virtual memory. More... | |
VPtr< T, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > | newClass (VPtrSize size=sizeof(T)) |
Allocates memory and constructs data type. More... | |
void | deleteClass (VPtr< T, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > &p) |
Destructs data type and frees memory. More... | |
VPtr< T, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > | newArray (VPtrSize elements) |
Allocates and constructs an array of objects. More... | |
void | deleteArray (VPtr< T, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > &p) |
Destructs and frees an array of objects. More... | |
Public Member Functions inherited from virtmem::BaseVAlloc | |
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() | |
Additional Inherited Members | |
Public Types inherited from virtmem::VAlloc< Properties, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > | |
using | VPtr = virtmem::VPtr< T, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > |
Static Public Member Functions inherited from virtmem::VAlloc< Properties, MultiSPIRAMVAllocP< SPIChips, chipAmount, Properties > > | |
static VAlloc * | getInstance (void) |
Returns a pointer to the instance of the class. More... | |
Protected Member Functions inherited from virtmem::BaseVAlloc | |
void | writeZeros (VPtrNum start, VPtrSize n) |
Writes zeros to raw virtual memory. Can be used to initialize the memory pool. More... | |
Virtual allocator that uses multiple SRAM chips (i.e. 23LC series from Microchip) as memory pool.
This allocator is similar to SPIRAMVAlloc, but combines multiple SRAM chips as one large memory pool. Interfacing occurs through the serialram library and must be installed in order to use this allocator. Every SRAM chip is configured by defining an SPIRamConfig array:
SPIChips | An array of SPIRamConfig that is used to configure each individual SRAM chip. |
chipAmount | Amount of SRAM chips to be used. |
Properties | Allocator properties, see DefaultAllocProperties |
serialram
library needs to be initialized (i.e. by calling CSerial::begin()) before initializing this allocator.
|
inline |
Constructs the allocator. The pool size is automatically deduced from the chip configurations.