PSRAM with ESP32-ttgo-t-beam
This commit is contained in:
parent
df3665fc97
commit
84a0b9a2e2
4 changed files with 52 additions and 14 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
21
memory.cpp
21
memory.cpp
|
@ -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()
|
||||
|
|
9
memory.h
9
memory.h
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue