more segment data for PSRAM boards
This commit is contained in:
@@ -86,7 +86,11 @@ extern BusManager busses; // same as wled.h
|
|||||||
#if defined(ARDUINO_ARCH_ESP32S2)
|
#if defined(ARDUINO_ARCH_ESP32S2)
|
||||||
#define MAX_SEGMENT_DATA 24576
|
#define MAX_SEGMENT_DATA 24576
|
||||||
#else
|
#else
|
||||||
#define MAX_SEGMENT_DATA 32767
|
#if defined(BOARD_HAS_PSRAM)
|
||||||
|
#define MAX_SEGMENT_DATA 65534 // 64KB on PSRAM boards
|
||||||
|
#else
|
||||||
|
#define MAX_SEGMENT_DATA 32767 // 32KB on non-PSRAM boards
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -232,7 +232,11 @@ bool Segment::allocateData(size_t len, bool allowOverdraft) { // WLEDMM allowOv
|
|||||||
if (len == 0) return false; // nothing to do
|
if (len == 0) return false; // nothing to do
|
||||||
if (Segment::getUsedSegmentData() + len > MAX_SEGMENT_DATA) {
|
if (Segment::getUsedSegmentData() + len > MAX_SEGMENT_DATA) {
|
||||||
if (!allowOverdraft || (Segment::getUsedSegmentData() + len > MAX_SEGMENT_OVERDATA)) { // WLEDMM 50% overdraft allowed temporarily
|
if (!allowOverdraft || (Segment::getUsedSegmentData() + len > MAX_SEGMENT_OVERDATA)) { // WLEDMM 50% overdraft allowed temporarily
|
||||||
//USER_PRINTF("Segment::allocateData: Segment data quota exceeded! used:%u request:%u max:%d\n", Segment::getUsedSegmentData(), len, MAX_SEGMENT_DATA);
|
static unsigned lastMsgTime = 0;
|
||||||
|
if (millis() - lastMsgTime > 5000) {
|
||||||
|
USER_PRINTF("Segment::allocateData: Segment data quota exceeded! used:%u request:%u max:%d\n", Segment::getUsedSegmentData(), len, MAX_SEGMENT_DATA);
|
||||||
|
lastMsgTime = millis();
|
||||||
|
}
|
||||||
if (len > 0) errorFlag = ERR_LOW_SEG_MEM; // WLEDMM raise errorflag
|
if (len > 0) errorFlag = ERR_LOW_SEG_MEM; // WLEDMM raise errorflag
|
||||||
return false; //not enough memory
|
return false; //not enough memory
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user