fix: delay WebServer startup to mitigate stack overflow (#797)

This commit is contained in:
laride
2025-06-11 12:12:39 +08:00
committed by GitHub
parent 968ed1fae3
commit c9dec29d73
2 changed files with 24 additions and 12 deletions

View File

@@ -28,7 +28,8 @@
"CONFIG_MMAP_FILE_NAME_LENGTH=25", "CONFIG_MMAP_FILE_NAME_LENGTH=25",
"CONFIG_ESP_CONSOLE_NONE=y", "CONFIG_ESP_CONSOLE_NONE=y",
"CONFIG_USE_ESP_WAKE_WORD=y", "CONFIG_USE_ESP_WAKE_WORD=y",
"CONFIG_IOT_PROTOCOL_MCP=y" "CONFIG_IOT_PROTOCOL_MCP=y",
"CONFIG_COMPILER_OPTIMIZATION_SIZE=y"
] ]
} }
] ]

View File

@@ -85,7 +85,13 @@ private:
int32_t event_id, void* event_data) int32_t event_id, void* event_data)
{ {
if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) { if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) {
xTaskCreate(
[](void* arg) {
EspHi* instance = static_cast<EspHi*>(arg); EspHi* instance = static_cast<EspHi*>(arg);
vTaskDelay(5000 / portTICK_PERIOD_MS);
if (!instance->web_server_initialized_) { if (!instance->web_server_initialized_) {
ESP_LOGI(TAG, "WiFi connected, init web control server"); ESP_LOGI(TAG, "WiFi connected, init web control server");
esp_err_t err = esp_hi_web_control_server_init(); esp_err_t err = esp_hi_web_control_server_init();
@@ -96,6 +102,11 @@ private:
instance->web_server_initialized_ = true; instance->web_server_initialized_ = true;
} }
} }
vTaskDelete(NULL);
},
"web_server_init",
1024 * 10, arg, 5, nullptr);
} }
} }
#endif //CONFIG_ESP_HI_WEB_CONTROL_ENABLED #endif //CONFIG_ESP_HI_WEB_CONTROL_ENABLED