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_ESP_CONSOLE_NONE=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,17 +85,28 @@ private:
int32_t event_id, void* event_data)
{
if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) {
EspHi* instance = static_cast<EspHi*>(arg);
if (!instance->web_server_initialized_) {
ESP_LOGI(TAG, "WiFi connected, init web control server");
esp_err_t err = esp_hi_web_control_server_init();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to initialize web control server: %d", err);
} else {
ESP_LOGI(TAG, "Web control server initialized");
instance->web_server_initialized_ = true;
}
}
xTaskCreate(
[](void* arg) {
EspHi* instance = static_cast<EspHi*>(arg);
vTaskDelay(5000 / portTICK_PERIOD_MS);
if (!instance->web_server_initialized_) {
ESP_LOGI(TAG, "WiFi connected, init web control server");
esp_err_t err = esp_hi_web_control_server_init();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to initialize web control server: %d", err);
} else {
ESP_LOGI(TAG, "Web control server initialized");
instance->web_server_initialized_ = true;
}
}
vTaskDelete(NULL);
},
"web_server_init",
1024 * 10, arg, 5, nullptr);
}
}
#endif //CONFIG_ESP_HI_WEB_CONTROL_ENABLED