KEK/memory.cpp
2024-04-20 18:28:44 +02:00

48 lines
702 B
C++

// (C) 2018-2023 by Folkert van Heusden
// Released under MIT license
#if defined(ESP32)
#include <Arduino.h>
#endif
#include <string.h>
#include "memory.h"
memory::memory(const uint32_t size) : size(size)
{
#if defined(ESP32)
Serial.print(F("Memory size (in bytes, decimal): "));
Serial.println(size);
if (size > 12 * 8192) {
Serial.println(F("Using PSRAM"));
is_psram = true;
m = reinterpret_cast<uint8_t *>(ps_malloc(size));
reset();
}
else {
m = new uint8_t[size]();
}
#else
m = new uint8_t[size]();
#endif
}
memory::~memory()
{
#if defined(ESP32)
if (is_psram)
free(m);
else
delete [] m;
#else
delete [] m;
#endif
}
void memory::reset()
{
memset(m, 0x00, size);
}