From 6fd647ab1504626840d433eb71298f26e51dceff Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 7 Jun 2023 21:45:52 +0200 Subject: [PATCH] post-merge * restore WLED_USE_PSRAM_JSON - not existing in upstream * fix compiler warning about ambiguous "&" --- wled00/e131.cpp | 1 + wled00/presets.cpp | 2 +- wled00/wled.cpp | 4 ++-- wled00/wled.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/wled00/e131.cpp b/wled00/e131.cpp index f3bd3f40..f3087b64 100644 --- a/wled00/e131.cpp +++ b/wled00/e131.cpp @@ -25,6 +25,7 @@ void handleDDPPacket(e131_packet_t* p) { } } + // WLEDMM this line seems very wrong - anything & 0b00111000 cannot have the last 3 bits set .... also there is a compiler warning "suggest parentheses around comparison in operand of '&'" uint8_t ddpChannelsPerLed = (p->dataType & 0b00111000 == 0b011) ? 4 : 3; // data type 0x1B (formerly 0x1A) is RGBW (type 3, 8 bit/channel) uint32_t start = htonl(p->channelOffset) / ddpChannelsPerLed; diff --git a/wled00/presets.cpp b/wled00/presets.cpp index de5cd872..80b92f1a 100644 --- a/wled00/presets.cpp +++ b/wled00/presets.cpp @@ -52,7 +52,7 @@ static void doSaveState() { size_t len = measureJson(*fileDoc) + 1; DEBUG_PRINTLN(len); // if possible use SPI RAM on ESP32 - #if defined(BOARD_HAS_PSRAM) && defined(WLED_USE_PSRAM) + #if defined(BOARD_HAS_PSRAM) && (defined(WLED_USE_PSRAM) || defined(WLED_USE_PSRAM_JSON)) // WLEDMM if (psramFound()) tmpRAMbuffer = (char*) ps_malloc(len); else diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 9932e10a..45e6201b 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -485,7 +485,7 @@ void WLED::setup() #endif #if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM) - psramInit(); //WLEDMM?? + //psramInit(); //WLEDMM?? softhack007: not sure if explicit init is really needed ... lets disable it here and see if that works #if defined(CONFIG_IDF_TARGET_ESP32S3) // S3: reserve GPIO 33-37 for "octal" PSRAM managed_pin_type pins[] = { {33, true}, {34, true}, {35, true}, {36, true}, {37, true} }; @@ -503,7 +503,7 @@ void WLED::setup() managed_pin_type pins[] = { {16, true}, {17, true} }; pinManager.allocateMultiplePins(pins, sizeof(pins)/sizeof(managed_pin_type), PinOwner::SPI_RAM); #endif - #if defined(WLED_USE_PSRAM) + #if defined(BOARD_HAS_PSRAM) && (defined(WLED_USE_PSRAM) || defined(WLED_USE_PSRAM_JSON)) // WLEDMM if (psramFound()) { DEBUG_PRINT(F("Total PSRAM: ")); DEBUG_PRINT(ESP.getPsramSize()/1024); DEBUG_PRINTLN("kB"); DEBUG_PRINT(F("Free PSRAM : ")); DEBUG_PRINT(ESP.getFreePsram()/1024); DEBUG_PRINTLN("kB"); diff --git a/wled00/wled.h b/wled00/wled.h index e53d9b7c..0211fa4b 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -146,7 +146,7 @@ // The following is a construct to enable code to compile without it. // There is a code thet will still not use PSRAM though: // AsyncJsonResponse is a derived class that implements DynamicJsonDocument (AsyncJson-v6.h) -#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM) && defined(WLED_USE_PSRAM) +#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM) && (defined(WLED_USE_PSRAM) || defined(WLED_USE_PSRAM_JSON)) // WLEDMM struct PSRAM_Allocator { void* allocate(size_t size) { if (psramFound()) return ps_malloc(size); // use PSRAM if it exists