Skip to content

Commit e8aa94e

Browse files
authored
Add build option for configuring the amount of SPIRAM to leave free for IDF allocation (#2379)
1 parent d609262 commit e8aa94e

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

CMakePresets.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@
5757
"API_nanoFramework.Hardware.Esp32.Rmt": "ON",
5858
"API_nanoFramework.ResourceManager": "ON",
5959
"API_nanoFramework.System.Collections": "ON",
60-
"API_nanoFramework.System.Text": "ON"
60+
"API_nanoFramework.System.Text": "ON",
61+
"ESP32_SPIRAM_FOR_IDF_ALLOCATION": "256 * 1024"
6162
}
6263
},
6364
{
@@ -89,7 +90,8 @@
8990
"API_nanoFramework.Hardware.Esp32.Rmt": "ON",
9091
"API_nanoFramework.ResourceManager": "ON",
9192
"API_nanoFramework.System.Collections": "ON",
92-
"API_nanoFramework.System.Text": "ON"
93+
"API_nanoFramework.System.Text": "ON",
94+
"ESP32_SPIRAM_FOR_IDF_ALLOCATION": "256 * 1024"
9395
}
9496
},
9597
{
@@ -527,7 +529,8 @@
527529
"GRAPHICS_DISPLAY": "ILI9342_320x240_SPI.cpp",
528530
"TOUCHPANEL_DEVICE": "XPT2046.cpp",
529531
"GRAPHICS_DISPLAY_INTERFACE": "Spi_To_Display.cpp",
530-
"TOUCHPANEL_INTERFACE": "Spi_To_TouchPanel.cpp"
532+
"TOUCHPANEL_INTERFACE": "Spi_To_TouchPanel.cpp",
533+
"ESP32_SPIRAM_FOR_IDF_ALLOCATION": "1024 * 1024"
531534
}
532535
},
533536
{

targets/ESP32/_nanoCLR/Memory.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@
2020

2121
static const char *TAG = "Memory";
2222

23-
// Space to leave free in SPIRAM for allocation by IDF malloc
24-
#define SPIRAM_MEMORY_LEAVE_FOR_ALLOCATION (256 * 1024)
25-
2623
#if HAL_USE_BLE
2724
// Reduce Managed heap if using BLE without spiram
2825
#define INTERNAL_RAM_LEAVE_FREE_FOR_ALLOCATION (30 * 1024)
@@ -120,7 +117,7 @@ void HeapLocation(unsigned char *&baseAddress, unsigned int &sizeInBytes)
120117
largestFreeBlock = spiramMaxSize;
121118

122119
// get heap size to allocate
123-
managedHeapSize = spiramMaxSize - SPIRAM_MEMORY_LEAVE_FOR_ALLOCATION;
120+
managedHeapSize = spiramMaxSize - ESP32_SPIRAM_FOR_IDF_ALLOCATION;
124121

125122
ESP_LOGI(TAG, "Allocating managed heap from SPIRAM");
126123
}

targets/ESP32/_nanoCLR/target_platform.h.in

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88

99
#include "esp32_ethernet_options.h"
1010

11-
#define NANOCLR_GRAPHICS @NANOCLR_GRAPHICS@
12-
#define HAL_USE_SPI @HAL_USE_SPI_OPTION@
13-
#define HAL_USE_SDC @HAL_USE_SDC_OPTION@
14-
#define HAL_USE_BLE @HAL_USE_BLE_OPTION@
11+
#define NANOCLR_GRAPHICS @NANOCLR_GRAPHICS@
12+
#define ESP32_SPIRAM_FOR_IDF_ALLOCATION @ESP32_SPIRAM_FOR_IDF_ALLOCATION@
13+
#define HAL_USE_SPI @HAL_USE_SPI_OPTION@
14+
#define HAL_USE_SDC @HAL_USE_SDC_OPTION@
15+
#define HAL_USE_BLE @HAL_USE_BLE_OPTION@
1516

1617
#if (HAL_USE_SDC == TRUE)
1718
#define SDC_MAX_OPEN_FILES 5

0 commit comments

Comments
 (0)