[BT] More aggressive memory release when stopping process (#1626)
To enable smoother OTA
This commit is contained in:
1 parent
177fb97715
commit
39b36b4456
1 file changed
+5
-4
+5
-4
@@ -821,14 +821,16 @@ void BLEconnect() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void stopProcessing() {
|
void stopProcessing() {
|
||||||
Log.notice(F("Stop BLE processing" CR));
|
|
||||||
ProcessLock = true;
|
ProcessLock = true;
|
||||||
delay(BTConfig.scanDuration < 2000 ? BTConfig.scanDuration : 2000);
|
delay(BTConfig.scanDuration < 2000 ? BTConfig.scanDuration : 2000);
|
||||||
//Suspending and deleting tasks to free memory for OTA operations
|
//Suspending, deleting tasks and stopping BT to free memory
|
||||||
vTaskSuspend(xCoreTaskHandle);
|
vTaskSuspend(xCoreTaskHandle);
|
||||||
vTaskDelete(xCoreTaskHandle);
|
vTaskDelete(xCoreTaskHandle);
|
||||||
vTaskSuspend(xProcBLETaskHandle);
|
vTaskSuspend(xProcBLETaskHandle);
|
||||||
vTaskDelete(xProcBLETaskHandle);
|
vTaskDelete(xProcBLETaskHandle);
|
||||||
|
if (BLEDevice::getInitialized()) BLEDevice::deinit(true);
|
||||||
|
esp_bt_mem_release(ESP_BT_MODE_BTDM);
|
||||||
|
Log.notice(F("BLE gateway stopped, free heap: %d" CR), ESP.getFreeHeap());
|
||||||
}
|
}
|
||||||
|
|
||||||
void coreTask(void* pvParameters) {
|
void coreTask(void* pvParameters) {
|
||||||
@@ -886,8 +888,7 @@ void deepSleep(uint64_t time_in_us) {
|
|||||||
# endif
|
# endif
|
||||||
|
|
||||||
Log.trace(F("Deactivating ESP32 components" CR));
|
Log.trace(F("Deactivating ESP32 components" CR));
|
||||||
if (BLEDevice::getInitialized()) BLEDevice::deinit(true);
|
stopProcessing();
|
||||||
esp_bt_mem_release(ESP_BT_MODE_BTDM);
|
|
||||||
// Ignore the deprecated warning, this call is necessary here.
|
// Ignore the deprecated warning, this call is necessary here.
|
||||||
# pragma GCC diagnostic push
|
# pragma GCC diagnostic push
|
||||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
|||||||
Reference in new issue
Block a user