PSRAM with ESP32-ttgo-t-beam

This commit is contained in:
folkert van heusden 2024-04-20 18:28:44 +02:00
parent df3665fc97
commit 84a0b9a2e2
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
4 changed files with 52 additions and 14 deletions

View file

@ -256,9 +256,14 @@ void setup() {
#endif
#if !defined(BUILD_FOR_RP2040)
uint32_t free_heap = ESP.getFreeHeap();
Serial.printf("Free RAM before init: %d decimal bytes (or %d pages (value for the ramsize command in the debugger))", free_heap, std::min(int(free_heap / 8192l), DEFAULT_N_PAGES));
Serial.println(F(""));
Serial.print(F("Free RAM after init (decimal bytes): "));
Serial.println(ESP.getFreeHeap());
if (psramFound()) {
uint32_t free_psram = ESP.getFreePsram();
Serial.printf("Free PSRAM: %d decimal bytes (or %d pages (see 'ramsize' in the debugger))", free_psram, free_psram / 8192l);
Serial.println(F(""));
}
#endif
Serial.println(F("Init bus"));
@ -307,13 +312,9 @@ void setup() {
#endif
#if !defined(BUILD_FOR_RP2040)
Serial.print(F("Free RAM after init (decimal bytes): "));
Serial.println(ESP.getFreeHeap());
if (psramFound()) {
Serial.print(F("Free PSRAM: "));
Serial.println(ESP.getFreePsram());
}
uint32_t free_heap = ESP.getFreeHeap();
Serial.printf("Free RAM after init: %d decimal bytes", free_heap);
Serial.println(F(""));
#endif
#if !defined(SHA2017)

View file

@ -35,3 +35,18 @@ lib_deps = greiman/SdFat@^2.1.2
build_flags = -std=gnu++17 -DESP32=1 -DSHA2017 -ggdb3 -D_GLIBCXX_USE_C99 -ISHAdisplay/Arduino/libraries/epd2in9-badge -ISHAdisplay/Arduino/libraries/epdpaint -ISHAdisplay/components/epaper-29-dke
build_unflags = -std=gnu++11
upload_protocol = esptool
[env:ESP32-ttgo-t-beam]
build_src_filter = +<*> -<.git/> -<.svn/> -<example/> -<examples/> -<test/> -<tests/> -<build> -<player.cpp> -<SHAdisplay/> -<console_shabadge.cpp>
platform = espressif32
board = ttgo-t-beam
framework = arduino
monitor_speed = 115200
upload_speed = 1000000
board_build.filesystem = littlefs
lib_deps = greiman/SdFat@^2.1.2
adafruit/Adafruit NeoPixel
bblanchon/ArduinoJson@^6.19.4
build_flags = -std=gnu++17 -DESP32=1 -ggdb3 -D_GLIBCXX_USE_C99
build_unflags = -std=gnu++11
extra_scripts = pre:prepare.py

View file

@ -13,14 +13,33 @@ memory::memory(const uint32_t size) : size(size)
#if defined(ESP32)
Serial.print(F("Memory size (in bytes, decimal): "));
Serial.println(size);
#endif
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()

View file

@ -1,4 +1,4 @@
// (C) 2018-2023 by Folkert van Heusden
// (C) 2018-2024 by Folkert van Heusden
// Released under MIT license
#pragma once
@ -9,8 +9,11 @@
class memory
{
private:
const uint32_t size { 0 };
uint8_t *m { nullptr };
const uint32_t size { 0 };
uint8_t *m { nullptr };
#ifdef ESP32
bool is_psram { false };
#endif
public:
memory(const uint32_t size);