From 536ef62412b36b2be57db2ad31d810c38fdc9776 Mon Sep 17 00:00:00 2001 From: moecinnamo Date: Fri, 5 Sep 2025 19:28:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=A2=91=E8=B0=B1=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=EF=BC=8C=E6=84=9F=E8=B0=A2=E5=93=88=E5=93=88=E5=93=88?= =?UTF-8?q?=E7=BE=A4=E5=8F=8B=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + main/boards/common/esp32_music.cc | 378 ++-- main/boards/common/esp32_music.h | 23 +- main/boards/common/music.h | 5 +- main/display/display.h | 5 +- main/display/lcd_display.cc | 633 +++++- main/display/lcd_display.h | 57 +- main/mcp_server.cc | 399 ++-- sdkconfig | 3240 ----------------------------- 9 files changed, 1171 insertions(+), 3571 deletions(-) delete mode 100644 sdkconfig diff --git a/README.md b/README.md index 8815801..eef3c79 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,8 @@ - main/boards/common/board.cc - main/display/display.h - main/display/display.cc +- main/display/lcd_display.h +- main/display/lcd_display.cc - main/application.h - main/application.cc - main/idf_component.yml diff --git a/main/boards/common/esp32_music.cc b/main/boards/common/esp32_music.cc index ff4acca..2952c3d 100644 --- a/main/boards/common/esp32_music.cc +++ b/main/boards/common/esp32_music.cc @@ -17,6 +17,7 @@ #include #include #include // 为isdigit函数 +#include // 为线程ID比较 #include #include @@ -185,12 +186,12 @@ static std::string buildUrlWithParams(const std::string &base_url, const std::st Esp32Music::Esp32Music() : last_downloaded_data_(), current_music_url_(), current_song_name_(), song_name_displayed_(false), current_lyric_url_(), lyrics_(), current_lyric_index_(-1), lyric_thread_(), is_lyric_running_(false), - is_playing_(false), is_downloading_(false), + display_mode_(DISPLAY_MODE_LYRICS), is_playing_(false), is_downloading_(false), play_thread_(), download_thread_(), audio_buffer_(), buffer_mutex_(), buffer_cv_(), buffer_size_(0), mp3_decoder_(nullptr), mp3_frame_info_(), mp3_decoder_initialized_(false) { - ESP_LOGI(TAG, "Music player initialized"); + ESP_LOGI(TAG, "Music player initialized with default spectrum display mode"); InitializeMp3Decoder(); } @@ -317,7 +318,7 @@ Esp32Music::~Esp32Music() ESP_LOGI(TAG, "Music player destroyed successfully"); } -bool Esp32Music::Download(const std::string &song_name) +bool Esp32Music::Download(const std::string &song_name, const std::string &artist_name) { ESP_LOGI(TAG, "喵波音律QQ交流群:865754861"); ESP_LOGI(TAG, "Starting to get music details for: %s", song_name.c_str()); @@ -329,8 +330,9 @@ bool Esp32Music::Download(const std::string &song_name) current_song_name_ = song_name; // 第一步:请求stream_pcm接口获取音频信息 - std::string api_url = "https://api.yuafeng.cn/API/ly/mgmusic.php"; - std::string full_url = api_url + "?msg=" + url_encode(song_name) + "&n=1"; + std::string base_url = "https://music.miao-lab.top"; + // std::string full_url = base_url + "/stream_pcm?song=" + url_encode(song_name) + "&artist=" + url_encode(artist_name); + std::string full_url = base_url + "/api?msg=" + url_encode(song_name); ESP_LOGI(TAG, "Request URL: %s", full_url.c_str()); @@ -368,9 +370,9 @@ bool Esp32Music::Download(const std::string &song_name) ESP_LOGI(TAG, "HTTP GET Status = %d, content_length = %d", status_code, last_downloaded_data_.length()); ESP_LOGD(TAG, "Complete music details response: %s", last_downloaded_data_.c_str()); - // 检查认证响应 - if (last_downloaded_data_.find("\"code\": 0") == std::string::npos) - { // 如果"code"不为0,则为失败 + // 简单的认证响应检查(可选) + if (last_downloaded_data_.find("ESP32动态密钥验证失败") != std::string::npos) + { ESP_LOGE(TAG, "Authentication failed for song: %s", song_name.c_str()); return false; } @@ -381,155 +383,118 @@ bool Esp32Music::Download(const std::string &song_name) cJSON *response_json = cJSON_Parse(last_downloaded_data_.c_str()); if (response_json) { - cJSON *data = cJSON_GetObjectItem(response_json, "data"); - // 提取关键信息 - if (data) + // 提取data数组 + cJSON *data_array = cJSON_GetObjectItem(response_json, "data"); + + if (cJSON_IsArray(data_array)) { - // 提取关键信息 - cJSON *artist = cJSON_GetObjectItem(data, "singer"); - cJSON *title = cJSON_GetObjectItem(data, "song"); - cJSON *audio_url = cJSON_GetObjectItem(data, "music"); - cJSON *lyric_url = cJSON_GetObjectItem(data, "lyric"); - - if (cJSON_IsString(artist)) + cJSON *item = nullptr; + cJSON *min_item = nullptr; + int min_num = INT_MAX; + // 遍历data数组以找到最小num的项 + cJSON_ArrayForEach(item, data_array) { - ESP_LOGI(TAG, "Artist: %s", artist->valuestring); - } - if (cJSON_IsString(title)) - { - ESP_LOGI(TAG, "Title: %s", title->valuestring); - } - - // 检查audio_url是否有效 - if (cJSON_IsString(audio_url) && audio_url->valuestring && strlen(audio_url->valuestring) > 0) - { - ESP_LOGI(TAG, "Audio URL: %s", audio_url->valuestring); - current_music_url_ = audio_url->valuestring; - song_name_displayed_ = false; // 重置歌名显示标志 - StartStreaming(current_music_url_); - - // 处理歌词URL - if (cJSON_IsString(lyric_url) && lyric_url->valuestring && strlen(lyric_url->valuestring) > 0) + cJSON *num = cJSON_GetObjectItem(item, "num"); + if (cJSON_IsNumber(num) && num->valueint < min_num) { - ESP_LOGI(TAG, "Loading lyrics for: %s", song_name.c_str()); - current_lyric_url_ = lyric_url->valuestring; + min_num = num->valueint; + min_item = item; + } + } + if (min_item) + { + // 提取关键信息 + cJSON *artist = cJSON_GetObjectItem(min_item, "singer"); + cJSON *title = cJSON_GetObjectItem(min_item, "song"); + cJSON *music_url = cJSON_GetObjectItem(min_item, "music_url"); + cJSON *audio_url = music_url ? cJSON_GetObjectItem(music_url, "standard") : nullptr; + cJSON *lyric = cJSON_GetObjectItem(min_item, "lyric"); + cJSON *lyric_url = lyric ? cJSON_GetObjectItem(lyric, "lrc") : nullptr; + if (cJSON_IsString(artist)) + { + ESP_LOGI(TAG, "Artist: %s", artist->valuestring); + } + if (cJSON_IsString(title)) + { + ESP_LOGI(TAG, "Title: %s", title->valuestring); + } + // 检查audio_url是否有效 + if (cJSON_IsString(audio_url) && audio_url->valuestring && strlen(audio_url->valuestring) > 0) + { + ESP_LOGI(TAG, "Audio URL path: %s", audio_url->valuestring); - // 启动歌词下载和显示 - if (is_lyric_running_) + // 第二步:获取audio_url并开始流式播放 + current_music_url_ = audio_url->valuestring; + + ESP_LOGI(TAG, "喵波音律QQ交流群:865754861"); + ESP_LOGI(TAG, "Starting streaming playback for: %s", song_name.c_str()); + song_name_displayed_ = false; // 重置歌名显示标志 + StartStreaming(current_music_url_); + + // 处理歌词URL - 只有在歌词显示模式下才启动歌词 + if (cJSON_IsString(lyric_url) && lyric_url->valuestring && strlen(lyric_url->valuestring) > 0) { - is_lyric_running_ = false; - if (lyric_thread_.joinable()) + // 直接返回歌词URL + current_lyric_url_ = lyric_url->valuestring; + + // 根据显示模式决定是否启动歌词 + if (display_mode_ == DISPLAY_MODE_LYRICS) { - lyric_thread_.join(); + ESP_LOGI(TAG, "Loading lyrics for: %s (lyrics display mode)", song_name.c_str()); + + // 启动歌词下载和显示 + if (is_lyric_running_) + { + is_lyric_running_ = false; + if (lyric_thread_.joinable()) + { + lyric_thread_.join(); + } + } + + is_lyric_running_ = true; + current_lyric_index_ = -1; + lyrics_.clear(); + + lyric_thread_ = std::thread(&Esp32Music::LyricDisplayThread, this); + } + else + { + ESP_LOGI(TAG, "Lyric URL found but spectrum display mode is active, skipping lyrics"); } } + else + { + ESP_LOGW(TAG, "No lyric URL found for this song"); + } - is_lyric_running_ = true; - current_lyric_index_ = -1; - lyrics_.clear(); - - lyric_thread_ = std::thread(&Esp32Music::LyricDisplayThread, this); + cJSON_Delete(response_json); + return true; } else { - ESP_LOGW(TAG, "The lyrics URL for this song was not found"); + // audio_url为空或无效 + ESP_LOGE(TAG, "Audio URL not found or empty for song: %s", song_name.c_str()); + ESP_LOGE(TAG, "Failed to find music: 没有找到歌曲 '%s'", song_name.c_str()); + cJSON_Delete(response_json); + return false; } - - cJSON_Delete(response_json); - return true; } - else - { - ESP_LOGE(TAG, "No valid audio URL found, song: %s", song_name.c_str()); - ESP_LOGE(TAG, "Unable to find song: '%s'", song_name.c_str()); - cJSON_Delete(response_json); - return false; - } - } - else - { - ESP_LOGE(TAG, "The 'data' field was not found in the response data"); - cJSON_Delete(response_json); - return false; } } else { - ESP_LOGE(TAG, "Unable to parse JSON response"); + ESP_LOGE(TAG, "Failed to parse JSON response"); } } else { - ESP_LOGE(TAG, "Music API returns empty response"); + ESP_LOGE(TAG, "Empty response from music API"); } return false; } -bool Esp32Music::Play() -{ - if (is_playing_.load()) - { // 使用atomic的load() - ESP_LOGW(TAG, "Music is already playing"); - return true; - } - - if (last_downloaded_data_.empty()) - { - ESP_LOGE(TAG, "No music data to play"); - return false; - } - - // 清理之前的播放线程 - if (play_thread_.joinable()) - { - play_thread_.join(); - } - - // 实际应调用流式播放接口 - return StartStreaming(current_music_url_); -} - -bool Esp32Music::Stop() -{ - if (!is_playing_ && !is_downloading_) - { - ESP_LOGW(TAG, "Music is not playing or downloading"); - return true; - } - - ESP_LOGI(TAG, "Stopping music playback and download"); - - // 停止下载和播放 - is_downloading_ = false; - is_playing_ = false; - - // 重置采样率到原始值 - ResetSampleRate(); - - // 通知所有等待的线程 - { - std::lock_guard lock(buffer_mutex_); - buffer_cv_.notify_all(); - } - - // 等待线程结束 - if (download_thread_.joinable()) - { - download_thread_.join(); - } - if (play_thread_.joinable()) - { - play_thread_.join(); - } - - // 清空缓冲区 - ClearAudioBuffer(); - - ESP_LOGI(TAG, "Music stopped successfully"); - return true; -} - std::string Esp32Music::GetDownloadResult() { return last_downloaded_data_; @@ -587,6 +552,7 @@ bool Esp32Music::StartStreaming(const std::string &music_url) play_thread_ = std::thread(&Esp32Music::PlayAudioStream, this); ESP_LOGI(TAG, "Streaming threads started successfully"); + return true; } @@ -625,6 +591,69 @@ bool Esp32Music::StopStreaming() buffer_cv_.notify_all(); } + // 等待线程结束(避免重复代码,让StopStreaming也能等待线程完全停止) + if (download_thread_.joinable()) + { + download_thread_.join(); + ESP_LOGI(TAG, "Download thread joined in StopStreaming"); + } + + // 等待播放线程结束,使用更安全的方式 + if (play_thread_.joinable()) + { + // 先设置停止标志 + is_playing_ = false; + + // 通知条件变量,确保线程能够退出 + { + std::lock_guard lock(buffer_mutex_); + buffer_cv_.notify_all(); + } + + // 使用超时机制等待线程结束,避免死锁 + bool thread_finished = false; + int wait_count = 0; + const int max_wait = 100; // 最多等待1秒 + + while (!thread_finished && wait_count < max_wait) + { + vTaskDelay(pdMS_TO_TICKS(10)); + wait_count++; + + // 检查线程是否仍然可join + if (!play_thread_.joinable()) + { + thread_finished = true; + break; + } + } + + if (play_thread_.joinable()) + { + if (wait_count >= max_wait) + { + ESP_LOGW(TAG, "Play thread join timeout, detaching thread"); + play_thread_.detach(); + } + else + { + play_thread_.join(); + ESP_LOGI(TAG, "Play thread joined in StopStreaming"); + } + } + } + + // 在线程完全结束后,只在频谱模式下停止FFT显示 + if (display && display_mode_ == DISPLAY_MODE_SPECTRUM) + { + display->stopFft(); + ESP_LOGI(TAG, "Stopped FFT display in StopStreaming (spectrum mode)"); + } + else if (display) + { + ESP_LOGI(TAG, "Not in spectrum mode, skipping FFT stop in StopStreaming"); + } + ESP_LOGI(TAG, "Music streaming stop signal sent"); return true; } @@ -862,21 +891,8 @@ void Esp32Music::PlayAudioStream() continue; } - // 设备状态检查通过,显示当前播放的歌名或歌词 - if (!song_name_displayed_ && !current_lyric_url_.empty()) - { - auto &board = Board::GetInstance(); - auto display = board.GetDisplay(); - if (display) - { - // 格式化歌词显示 - std::string formatted_lyric = current_lyric_url_; - display->SetMusicInfo(formatted_lyric.c_str()); - ESP_LOGI(TAG, "Displaying lyric: %s", formatted_lyric.c_str()); - song_name_displayed_ = true; - } - } - else if (!song_name_displayed_ && !current_song_name_.empty()) + // 设备状态检查通过,显示当前播放的歌名 + if (!song_name_displayed_ && !current_song_name_.empty()) { auto &board = Board::GetInstance(); auto display = board.GetDisplay(); @@ -888,6 +904,20 @@ void Esp32Music::PlayAudioStream() ESP_LOGI(TAG, "Displaying song name: %s", formatted_song_name.c_str()); song_name_displayed_ = true; } + + // 根据显示模式启动相应的显示功能 + if (display) + { + if (display_mode_ == DISPLAY_MODE_SPECTRUM) + { + display->start(); + ESP_LOGI(TAG, "Display start() called for spectrum visualization"); + } + else + { + ESP_LOGI(TAG, "Lyrics display mode active, FFT visualization disabled"); + } + } } // 如果需要更多MP3数据,从缓冲区读取 @@ -1060,6 +1090,18 @@ void Esp32Music::PlayAudioStream() packet.payload.resize(pcm_size_bytes); memcpy(packet.payload.data(), final_pcm_data, pcm_size_bytes); + if (final_pcm_data_fft == nullptr) + { + final_pcm_data_fft = (int16_t *)heap_caps_malloc( + final_sample_count * sizeof(int16_t), + MALLOC_CAP_SPIRAM); + } + + memcpy( + final_pcm_data_fft, + final_pcm_data, + final_sample_count * sizeof(int16_t)); + ESP_LOGD(TAG, "Sending %d PCM samples (%d bytes, rate=%d, channels=%d->1) to Application", final_sample_count, pcm_size_bytes, mp3_frame_info_.samprate, mp3_frame_info_.nChans); @@ -1098,23 +1140,28 @@ void Esp32Music::PlayAudioStream() heap_caps_free(mp3_input_buffer); } - // 播放结束时清空歌名显示 - auto &board = Board::GetInstance(); - auto display = board.GetDisplay(); - if (display) - { - display->SetMusicInfo(""); // 清空歌名显示 - ESP_LOGI(TAG, "Cleared song name display on playback end"); - } - - // 重置采样率到原始值 - ResetSampleRate(); - - // 播放结束时保持音频输出启用状态,让Application管理 - // 不在这里禁用音频输出,避免干扰其他音频功能 + // 播放结束时进行基本清理,但不调用StopStreaming避免线程自我等待 ESP_LOGI(TAG, "Audio stream playback finished, total played: %d bytes", total_played); + ESP_LOGI(TAG, "Performing basic cleanup from play thread"); + // 停止播放标志 is_playing_ = false; + + // 只在频谱显示模式下才停止FFT显示 + if (display_mode_ == DISPLAY_MODE_SPECTRUM) + { + auto &board = Board::GetInstance(); + auto display = board.GetDisplay(); + if (display) + { + display->stopFft(); + ESP_LOGI(TAG, "Stopped FFT display from play thread (spectrum mode)"); + } + } + else + { + ESP_LOGI(TAG, "Not in spectrum mode, skipping FFT stop"); + } } // 清空音频缓冲区 @@ -1597,4 +1644,15 @@ void Esp32Music::UpdateLyricDisplay(int64_t current_time_ms) */ // 删除复杂的AddAuthHeaders方法,使用简单的静态函数 -// 删除复杂的认证验证和配置方法,使用简单的静态函数 \ No newline at end of file +// 删除复杂的认证验证和配置方法,使用简单的静态函数 + +// 显示模式控制方法实现 +void Esp32Music::SetDisplayMode(DisplayMode mode) +{ + DisplayMode old_mode = display_mode_.load(); + display_mode_ = mode; + + ESP_LOGI(TAG, "Display mode changed from %s to %s", + (old_mode == DISPLAY_MODE_SPECTRUM) ? "SPECTRUM" : "LYRICS", + (mode == DISPLAY_MODE_SPECTRUM) ? "SPECTRUM" : "LYRICS"); +} \ No newline at end of file diff --git a/main/boards/common/esp32_music.h b/main/boards/common/esp32_music.h index 5128cd9..5c1afe9 100644 --- a/main/boards/common/esp32_music.h +++ b/main/boards/common/esp32_music.h @@ -26,6 +26,13 @@ struct AudioChunk { }; class Esp32Music : public Music { +public: + // 显示模式控制 - 移动到public区域 + enum DisplayMode { + DISPLAY_MODE_SPECTRUM = 0, // 默认显示频谱 + DISPLAY_MODE_LYRICS = 1 // 显示歌词 + }; + private: std::string last_downloaded_data_; std::string current_music_url_; @@ -39,6 +46,8 @@ private: std::atomic current_lyric_index_; std::thread lyric_thread_; std::atomic is_lyric_running_; + + std::atomic display_mode_; std::atomic is_playing_; std::atomic is_downloading_; std::thread play_thread_; @@ -77,13 +86,14 @@ private: // ID3标签处理 size_t SkipId3Tag(uint8_t* data, size_t size); + int16_t* final_pcm_data_fft = nullptr; + public: Esp32Music(); ~Esp32Music(); - virtual bool Download(const std::string& song_name) override; - virtual bool Play() override; - virtual bool Stop() override; + virtual bool Download(const std::string& song_name, const std::string& artist_name) override; + virtual std::string GetDownloadResult() override; // 新增方法 @@ -91,6 +101,11 @@ public: virtual bool StopStreaming() override; // 停止流式播放 virtual size_t GetBufferSize() const override { return buffer_size_; } virtual bool IsDownloading() const override { return is_downloading_; } + virtual int16_t* GetAudioData() override { return final_pcm_data_fft; } + + // 显示模式控制方法 + void SetDisplayMode(DisplayMode mode); + DisplayMode GetDisplayMode() const { return display_mode_.load(); } }; -#endif // ESP32_MUSIC_H +#endif // ESP32_MUSIC_H \ No newline at end of file diff --git a/main/boards/common/music.h b/main/boards/common/music.h index ed2cffd..4b31ec4 100644 --- a/main/boards/common/music.h +++ b/main/boards/common/music.h @@ -7,9 +7,7 @@ class Music { public: virtual ~Music() = default; // 添加虚析构函数 - virtual bool Download(const std::string& song_name) = 0; - virtual bool Play() = 0; - virtual bool Stop() = 0; + virtual bool Download(const std::string& song_name, const std::string& artist_name = "") = 0; virtual std::string GetDownloadResult() = 0; // 新增流式播放相关方法 @@ -17,6 +15,7 @@ public: virtual bool StopStreaming() = 0; // 停止流式播放 virtual size_t GetBufferSize() const = 0; virtual bool IsDownloading() const = 0; + virtual int16_t* GetAudioData() = 0; }; #endif // MUSIC_H \ No newline at end of file diff --git a/main/display/display.h b/main/display/display.h index 2e48749..f20647b 100644 --- a/main/display/display.h +++ b/main/display/display.h @@ -32,6 +32,9 @@ public: virtual std::string GetTheme() { return current_theme_name_; } virtual void UpdateStatusBar(bool update_all = false); virtual void SetPowerSaveMode(bool on); + virtual void start() {} + virtual void clearScreen() {} // 清除FFT显示,默认为空实现 + virtual void stopFft() {} // 停止FFT显示,默认为空实现 inline int width() const { return width_; } inline int height() const { return height_; } @@ -90,4 +93,4 @@ private: virtual void Unlock() override {} }; -#endif +#endif \ No newline at end of file diff --git a/main/display/lcd_display.cc b/main/display/lcd_display.cc index 230303c..a9f80bc 100644 --- a/main/display/lcd_display.cc +++ b/main/display/lcd_display.cc @@ -4,17 +4,38 @@ #include #include #include +#include +#include #include #include #include #include "assets/lang_config.h" #include +#include +#include #include "settings.h" #include "board.h" +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + #define TAG "LcdDisplay" +#define FFT_SIZE 512 +static int current_heights[40] = {0}; +static float avg_power_spectrum[FFT_SIZE/2]={-25.0f}; + +#define COLOR_BLACK 0x0000 +#define COLOR_RED 0xF800 +#define COLOR_GREEN 0x07E0 +#define COLOR_BLUE 0x001F +#define COLOR_YELLOW 0xFFE0 +#define COLOR_CYAN 0x07FF +#define COLOR_MAGENTA 0xF81F +#define COLOR_WHITE 0xFFFF + // Color definitions for dark theme #define DARK_BACKGROUND_COLOR lv_color_hex(0x121212) // Dark background #define DARK_TEXT_COLOR lv_color_white() // White text @@ -105,7 +126,7 @@ SpiLcdDisplay::SpiLcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_h ESP_LOGI(TAG, "Initialize LVGL port"); lvgl_port_cfg_t port_cfg = ESP_LVGL_PORT_INIT_CONFIG(); port_cfg.task_priority = 1; - port_cfg.timer_period_ms = 40; + port_cfg.timer_period_ms = 50; lvgl_port_init(&port_cfg); ESP_LOGI(TAG, "Adding LCD display"); @@ -145,6 +166,27 @@ SpiLcdDisplay::SpiLcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_h lv_display_set_offset(display_, offset_x, offset_y); } + // 初始化 FFT 相关内存 + fft_real = (float*)heap_caps_malloc(FFT_SIZE * sizeof(float), MALLOC_CAP_SPIRAM); + fft_imag = (float*)heap_caps_malloc(FFT_SIZE * sizeof(float), MALLOC_CAP_SPIRAM); + hanning_window_float = (float*)heap_caps_malloc(FFT_SIZE * sizeof(float), MALLOC_CAP_SPIRAM); + + // 创建窗函数 + for (int i = 0; i < FFT_SIZE; i++) { + hanning_window_float[i] = 0.5 * (1.0 - cos(2.0 * M_PI * i / (FFT_SIZE - 1))); + } + + if(audio_data==nullptr){ + audio_data=(int16_t*)heap_caps_malloc(sizeof(int16_t)*1152, MALLOC_CAP_SPIRAM); + memset(audio_data,0,sizeof(int16_t)*1152); + } + if(frame_audio_data==nullptr){ + frame_audio_data=(int16_t*)heap_caps_malloc(sizeof(int16_t)*1152, MALLOC_CAP_SPIRAM); + memset(frame_audio_data,0,sizeof(int16_t)*1152); + } + + ESP_LOGI(TAG,"Initialize fft_input, audio_data, frame_audio_data, spectrum_data"); + SetupUI(); } @@ -270,6 +312,24 @@ MipiLcdDisplay::MipiLcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel } LcdDisplay::~LcdDisplay() { + // 停止FFT任务 + if (fft_task_handle != nullptr) { + ESP_LOGI(TAG, "Stopping FFT task in destructor"); + fft_task_should_stop = true; + + // 等待任务停止 + int wait_count = 0; + while (fft_task_handle != nullptr && wait_count < 100) { + vTaskDelay(pdMS_TO_TICKS(10)); + wait_count++; + } + + if (fft_task_handle != nullptr) { + vTaskDelete(fft_task_handle); + fft_task_handle = nullptr; + } + } + // 然后再清理 LVGL 对象 if (content_ != nullptr) { lv_obj_del(content_); @@ -367,7 +427,7 @@ void LcdDisplay::SetupUI() { emotion_label_ = lv_label_create(status_bar_); lv_obj_set_style_text_font(emotion_label_, &font_awesome_30_4, 0); lv_obj_set_style_text_color(emotion_label_, current_theme_.text, 0); - lv_label_set_text(emotion_label_, FONT_AWESOME_MICROCHIP_AI); + lv_label_set_text(emotion_label_, FONT_AWESOME_AI_CHIP); lv_obj_set_style_margin_right(emotion_label_, 5, 0); // 添加右边距,与后面的元素分隔 notification_label_ = lv_label_create(status_bar_); @@ -814,11 +874,11 @@ void LcdDisplay::SetPreviewImage(const lv_img_dsc_t* img_dsc) { } if (img_dsc != nullptr) { - // 设置图片源并显示预览图片 - lv_image_set_src(preview_image_, img_dsc); // zoom factor 0.5 lv_image_set_scale(preview_image_, 128 * width_ / img_dsc->header.w); - lv_obj_remove_flag(preview_image_, LV_OBJ_FLAG_HIDDEN); + // 设置图片源并显示预览图片 + lv_image_set_src(preview_image_, img_dsc); + lv_obj_clear_flag(preview_image_, LV_OBJ_FLAG_HIDDEN); // 隐藏emotion_label_ if (emotion_label_ != nullptr) { lv_obj_add_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); @@ -827,7 +887,7 @@ void LcdDisplay::SetPreviewImage(const lv_img_dsc_t* img_dsc) { // 隐藏预览图片并显示emotion_label_ lv_obj_add_flag(preview_image_, LV_OBJ_FLAG_HIDDEN); if (emotion_label_ != nullptr) { - lv_obj_remove_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); } } } @@ -867,13 +927,6 @@ void LcdDisplay::SetEmotion(const char* emotion) { std::string_view emotion_view(emotion); auto it = std::find_if(emotions.begin(), emotions.end(), [&emotion_view](const Emotion& e) { return e.text == emotion_view; }); - if (fonts_.emoji_font == nullptr || it == emotions.end()) { - const char* utf8 = font_awesome_get_utf8(emotion); - if (utf8 != nullptr) { - SetIcon(utf8); - } - return; - } DisplayLockGuard lock(this); if (emotion_label_ == nullptr) { @@ -890,7 +943,7 @@ void LcdDisplay::SetEmotion(const char* emotion) { #if !CONFIG_USE_WECHAT_MESSAGE_STYLE // 显示emotion_label_,隐藏preview_image_ - lv_obj_remove_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); if (preview_image_ != nullptr) { lv_obj_add_flag(preview_image_, LV_OBJ_FLAG_HIDDEN); } @@ -907,13 +960,43 @@ void LcdDisplay::SetIcon(const char* icon) { #if !CONFIG_USE_WECHAT_MESSAGE_STYLE // 显示emotion_label_,隐藏preview_image_ - lv_obj_remove_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); if (preview_image_ != nullptr) { lv_obj_add_flag(preview_image_, LV_OBJ_FLAG_HIDDEN); } #endif } +void LcdDisplay::SetMusicInfo(const char* song_name) { +#if CONFIG_USE_WECHAT_MESSAGE_STYLE + // 微信模式下不显示歌名,保持原有聊天功能 + return; +#else + // 非微信模式:在表情下方显示歌名 + DisplayLockGuard lock(this); + if (chat_message_label_ == nullptr) { + return; + } + + if (song_name != nullptr && strlen(song_name) > 0) { + std::string music_text = ""; + music_text += song_name; + lv_label_set_text(chat_message_label_, music_text.c_str()); + + // 确保显示 emotion_label_ 和 chat_message_label_,隐藏 preview_image_ + if (emotion_label_ != nullptr) { + lv_obj_clear_flag(emotion_label_, LV_OBJ_FLAG_HIDDEN); + } + if (preview_image_ != nullptr) { + lv_obj_add_flag(preview_image_, LV_OBJ_FLAG_HIDDEN); + } + } else { + // 清空歌名显示 + lv_label_set_text(chat_message_label_, ""); + } +#endif +} + void LcdDisplay::SetTheme(const std::string& theme_name) { DisplayLockGuard lock(this); @@ -1108,3 +1191,523 @@ void LcdDisplay::SetTheme(const std::string& theme_name) { // No errors occurred. Save theme to settings Display::SetTheme(theme_name); } + +void LcdDisplay::create_canvas(){ + DisplayLockGuard lock(this); + if (canvas_ != nullptr) { + lv_obj_del(canvas_); + } + if (canvas_buffer_ != nullptr) { + heap_caps_free(canvas_buffer_); + canvas_buffer_ = nullptr; + } + + int status_bar_height=lv_obj_get_height(status_bar_); + canvas_width_=width_; + canvas_height_=height_-status_bar_height; + + canvas_buffer_=(uint16_t*)heap_caps_malloc(canvas_width_ * canvas_height_ * sizeof(uint16_t), MALLOC_CAP_8BIT | MALLOC_CAP_SPIRAM); + if (canvas_buffer_ == nullptr) { + ESP_LOGE(TAG, "Failed to allocate canvas buffer"); + return; + } + ESP_LOGI(TAG, "canvas buffer allocated successfully"); + canvas_ = lv_canvas_create(lv_scr_act()); + lv_canvas_set_buffer(canvas_, canvas_buffer_, canvas_width_, canvas_height_, LV_COLOR_FORMAT_RGB565); + ESP_LOGI(TAG,"width: %d, height: %d", width_, height_); + + + + lv_obj_set_pos(canvas_, 0, status_bar_height); + lv_obj_set_size(canvas_, canvas_width_, canvas_height_); + lv_canvas_fill_bg(canvas_, lv_color_make(0, 0, 0), LV_OPA_TRANSP); + lv_obj_move_foreground(canvas_); + + ESP_LOGI(TAG, "canvas created successfully"); + + + + + +} +void LcdDisplay::start(){ + ESP_LOGI(TAG, "Starting LcdDisplay with periodic data updates"); + + vTaskDelay(pdMS_TO_TICKS(500)); + + // 创建周期性更新任务 + fft_task_should_stop = false; // 重置停止标志 + xTaskCreate( + periodicUpdateTaskWrapper, + "display_fft", // 任务名称 + 4096*2, // 堆栈大小 + this, // 参数 + 1, // 优先级 + &fft_task_handle // 保存到成员变量 + ); + + +} + +void LcdDisplay::drawSpectrumIfReady() { + if (fft_data_ready) { + draw_spectrum(avg_power_spectrum, FFT_SIZE/2); + fft_data_ready = false; + } +} + +void LcdDisplay::periodicUpdateTaskWrapper(void* arg) { + auto self = static_cast(arg); + self->periodicUpdateTask(); +} + +void LcdDisplay::periodicUpdateTask() { + ESP_LOGI(TAG, "Periodic update task started"); + + if(canvas_==nullptr){ + create_canvas(); + } + else{ + ESP_LOGI(TAG, "canvas already created"); + } + + + auto music = Board::GetInstance().GetMusic(); + + const TickType_t displayInterval = pdMS_TO_TICKS(40); + const TickType_t audioProcessInterval = pdMS_TO_TICKS(15); + + TickType_t lastDisplayTime = xTaskGetTickCount(); + TickType_t lastAudioTime = xTaskGetTickCount(); + + while (!fft_task_should_stop) { + + TickType_t currentTime = xTaskGetTickCount(); + + + if (currentTime - lastAudioTime >= audioProcessInterval) { + if(music->GetAudioData() != nullptr) { + readAudioData(); // 快速处理,不阻塞 + } else { + vTaskDelay(pdMS_TO_TICKS(100)); + } + lastAudioTime = currentTime; + } + + // 显示刷新(30Hz) + if (currentTime - lastDisplayTime >= displayInterval) { + if (fft_data_ready) { + DisplayLockGuard lock(this); + drawSpectrumIfReady(); + lv_area_t refresh_area; + refresh_area.x1 = 0; + refresh_area.y1 = height_-100; + refresh_area.x2 = canvas_width_ -1; + refresh_area.y2 = height_ -1; // 只刷新频谱区域 + lv_obj_invalidate_area(canvas_, &refresh_area); + //lv_obj_invalidate(canvas_); + fft_data_ready = false; + lastDisplayTime = currentTime; + } // 绘制操作 + + + // 更新FPS计数 + //FPS(); + } + + + + vTaskDelay(pdMS_TO_TICKS(10)); + // 短暂延迟 + + } + + ESP_LOGI(TAG, "FFT display task stopped"); + fft_task_handle = nullptr; // 清空任务句柄 + vTaskDelete(NULL); // 删除当前任务 +} + + + +void LcdDisplay::readAudioData(){ + + auto music = Board::GetInstance().GetMusic(); + + if(music->GetAudioData()!=nullptr){ + + + if(audio_display_last_update<=2){ + memcpy(audio_data,music->GetAudioData(),sizeof(int16_t)*1152); + for(int i=0;i<1152;i++){ + frame_audio_data[i]+=audio_data[i]; + } + audio_display_last_update++; + + }else{ + const int HOP_SIZE = 512; + const int NUM_SEGMENTS = 1 + (1152 - FFT_SIZE) / HOP_SIZE; + + for (int seg = 0; seg < NUM_SEGMENTS; seg++) { + int start = seg * HOP_SIZE; + if (start + FFT_SIZE > 1152) break; + + // 准备当前段数据 + for (int i = 0; i < FFT_SIZE; i++) { + int idx = start + i; + //float sample =frame_audio_data[idx] / 32768.0f; + float sample =frame_audio_data[idx] / 32768.0f; + fft_real[i] = sample * hanning_window_float[i]; + fft_imag[i] = 0.0f; + + } + + compute(fft_real, fft_imag, FFT_SIZE, true); + + // 计算功率谱并累加(双边) + for (int i = 0; i < FFT_SIZE/2; i++) { + avg_power_spectrum[i] += fft_real[i] * fft_real[i]+fft_imag[i] * fft_imag[i]; // 功率 = 幅度平方 + } + } + + // 计算平均值 + for (int i = 0; i < FFT_SIZE/2; i++) { + avg_power_spectrum[i] /= NUM_SEGMENTS; + } + + audio_display_last_update=0; + //memcpy(spectrum_data, avg_power_spectrum, sizeof(float) * FFT_SIZE/2); + fft_data_ready=true; + + //draw_spectrum(avg_power_spectrum, FFT_SIZE/2); + memset(frame_audio_data,0,sizeof(int16_t)*1152); + + } + }else{ + ESP_LOGI(TAG, "audio_data is nullptr"); + vTaskDelay(pdMS_TO_TICKS(500)); + } +} + +uint16_t LcdDisplay::get_bar_color(int x_pos){ + + static uint16_t color_table[40]; + static bool initialized = false; + + if (!initialized) { + // 生成黄绿->黄->黄红的渐变 + for (int i = 0; i < 40; i++) { + if (i < 20) { + // 黄绿到黄:增加红色分量 + uint8_t r = static_cast((i / 19.0f) * 31); + color_table[i] = (r << 11) | (0x3F << 5); + } else { + // 黄到黄红:减少绿色分量 + uint8_t g = static_cast((1.0f - (i - 20) / 19.0f * 0.5f) * 63); + color_table[i] = (0x1F << 11) | (g << 5); + } + } + initialized = true; + } + + return color_table[x_pos]; + } + + +void LcdDisplay::draw_spectrum(float *power_spectrum,int fft_size){ + + + const int bartotal=40; + int bar_height; + const int bar_max_height=canvas_height_-100; + const int bar_width=240/bartotal; + int x_pos=0; + int y_pos = (canvas_height_) - 1; + + float magnitude[bartotal]={0}; + float max_magnitude=0; + + const float MIN_DB = -25.0f; + const float MAX_DB = 0.0f; + + for (int bin = 0; bin < bartotal; bin++) { + int start = bin * (fft_size / bartotal); + int end = (bin+1) * (fft_size / bartotal); + magnitude[bin] = 0; + int count=0; + for (int k = start; k < end; k++) { + magnitude[bin] += sqrt(power_spectrum[k]); + count++; + } + if(count>0){ + magnitude[bin] /= count; + } + + + if (magnitude[bin] > max_magnitude) max_magnitude = magnitude[bin]; + } + + + magnitude[1]=magnitude[1]*0.6; + magnitude[2]=magnitude[2]*0.7; + magnitude[3]=magnitude[3]*0.8; + magnitude[4]=magnitude[4]*0.8; + magnitude[5]=magnitude[5]*0.9; + /* + if (bartotal >= 6) { + magnitude[0] *= 0.3f; // 最低频 + magnitude[1] *= 1.1f; + magnitude[2] *= 1.0f; + magnitude[3] *= 0.9f; + magnitude[4] *= 0.8f; + magnitude[5] *= 0.7f; + // 更高频率保持或进一步衰减 + for (int i = 6; i < bartotal; i++) { + magnitude[i] *= 0.6f; + } + } + */ + + for (int bin = 1; bin < bartotal; bin++) { + + if (magnitude[bin] > 0.0f && max_magnitude > 0.0f) { + // 相对dB值:20 * log10(magnitude/ref_level) + magnitude[bin] = 20.0f * log10f(magnitude[bin] / max_magnitude+ 1e-10); + } else { + magnitude[bin] = MIN_DB; + } + if (magnitude[bin] > max_magnitude) max_magnitude = magnitude[bin]; + } + + clearScreen(); + + for (int k = 1; k < bartotal; k++) { // 跳过直流分量(k=0) + x_pos=canvas_width_/bartotal*(k-1); + float mag=(magnitude[k] - MIN_DB) / (MAX_DB - MIN_DB); + mag = std::max(0.0f, std::min(1.0f, mag)); + bar_height=int(mag*(bar_max_height)); + + int color=get_bar_color(k); + draw_bar(x_pos,y_pos,bar_width,bar_height, color,k-1); + //printf("x: %d, y: %d,\n", x_pos, bar_height); + } + + +} + +void LcdDisplay::draw_bar(int x,int y,int bar_width,int bar_height,uint16_t color,int bar_index){ + + const int block_space=2; + const int block_x_size=bar_width-block_space; + const int block_y_size=4; + + int blocks_per_col=(bar_height/(block_y_size+block_space)); + int start_x=(block_x_size+block_space)/2+x; + + if(current_heights[bar_index](block_y_size+block_space)) + draw_block(start_x,canvas_height_-current_heights[bar_index],block_x_size,block_y_size,color,bar_index); + + } + + draw_block(start_x,canvas_height_-1,block_x_size,block_y_size,color,bar_index); + + for(int j=1;j y-block_y_size;row--) { + // 一次绘制一行 + uint16_t* line_start = &canvas_buffer_[row * canvas_width_ + x]; + std::fill_n(line_start, block_x_size, color); + } +} + +void LcdDisplay::clearScreen() { + // DisplayLockGuard lock(this); + // 清屏为黑色 + //for (int i = 0; i < canvas_width_ * canvas_height_; i++) { + // canvas_buffer_[i] = COLOR_BLACK; + //} + //lv_obj_invalidate(canvas_); + std::fill_n(canvas_buffer_, canvas_width_ * canvas_height_, COLOR_BLACK); + +} + +void LcdDisplay::stopFft() { + ESP_LOGI(TAG, "Stopping FFT display"); + + // 停止FFT显示任务 + if (fft_task_handle != nullptr) { + ESP_LOGI(TAG, "Stopping FFT display task"); + fft_task_should_stop = true; // 设置停止标志 + + // 等待任务停止(最多等待1秒) + int wait_count = 0; + while (fft_task_handle != nullptr && wait_count < 100) { + vTaskDelay(pdMS_TO_TICKS(10)); + wait_count++; + } + + if (fft_task_handle != nullptr) { + ESP_LOGW(TAG, "FFT task did not stop gracefully, force deleting"); + vTaskDelete(fft_task_handle); + fft_task_handle = nullptr; + } else { + ESP_LOGI(TAG, "FFT display task stopped successfully"); + } + } + + // 使用显示锁保护所有操作 + DisplayLockGuard lock(this); + + // 重置FFT状态变量 + fft_data_ready = false; + audio_display_last_update = 0; + + // 重置频谱条高度 + memset(current_heights, 0, sizeof(current_heights)); + + // 重置平均功率谱数据 + for (int i = 0; i < FFT_SIZE/2; i++) { + avg_power_spectrum[i] = -25.0f; + } + + // 删除FFT画布对象,让原始UI重新显示 + if (canvas_ != nullptr) { + lv_obj_del(canvas_); + canvas_ = nullptr; + ESP_LOGI(TAG, "FFT canvas deleted"); + } + + // 释放画布缓冲区内存 + if (canvas_buffer_ != nullptr) { + heap_caps_free(canvas_buffer_); + canvas_buffer_ = nullptr; + ESP_LOGI(TAG, "FFT canvas buffer freed"); + } + + // 重置画布尺寸变量 + canvas_width_ = 0; + canvas_height_ = 0; + + ESP_LOGI(TAG, "FFT display stopped, original UI restored"); +} + +void LcdDisplay::MyUI(){ + + DisplayLockGuard lock(this); + + auto screen = lv_screen_active(); + lv_obj_set_style_text_font(screen, fonts_.text_font, 0); + lv_obj_set_style_text_color(screen, lv_color_white(), 0); + lv_obj_set_style_bg_color(screen, lv_color_black(), 0); + + /* Container */ + container_ = lv_obj_create(screen); + lv_obj_set_size(container_, LV_HOR_RES, LV_VER_RES); + lv_obj_set_flex_flow(container_, LV_FLEX_FLOW_COLUMN); + lv_obj_set_style_pad_all(container_, 0, 0); + lv_obj_set_style_border_width(container_, 0, 0); + lv_obj_set_style_pad_row(container_, 0, 0); + lv_obj_set_style_bg_color(container_, lv_color_black(), 0); + lv_obj_set_style_border_color(container_, lv_color_white(), 0); + + + /* Status bar */ + status_bar_ = lv_obj_create(container_); + lv_obj_set_size(status_bar_, LV_HOR_RES, fonts_.text_font->line_height); + lv_obj_set_style_radius(status_bar_, 0, 0); + lv_obj_set_style_bg_color(status_bar_, lv_color_black(), 0); + lv_obj_set_style_text_color(status_bar_, lv_color_white(), 0); + + /* Status bar */ + lv_obj_set_flex_flow(status_bar_, LV_FLEX_FLOW_ROW); + lv_obj_set_style_pad_all(status_bar_, 0, 0); + lv_obj_set_style_border_width(status_bar_, 0, 0); + lv_obj_set_style_pad_column(status_bar_, 0, 0); + lv_obj_set_style_pad_left(status_bar_, 2, 0); + lv_obj_set_style_pad_right(status_bar_, 2, 0); + + + + + + +} + + +void LcdDisplay::compute(float* real, float* imag, int n, bool forward) { + // 位反转排序 + int j = 0; + for (int i = 0; i < n; i++) { + if (j > i) { + std::swap(real[i], real[j]); + std::swap(imag[i], imag[j]); + } + + int m = n >> 1; + while (m >= 1 && j >= m) { + j -= m; + m >>= 1; + } + j += m; + } + + // FFT计算 + for (int s = 1; s <= (int)log2(n); s++) { + int m = 1 << s; + int m2 = m >> 1; + float w_real = 1.0f; + float w_imag = 0.0f; + float angle = (forward ? -2.0f : 2.0f) * M_PI / m; + float wm_real = cosf(angle); + float wm_imag = sinf(angle); + + for (int j = 0; j < m2; j++) { + for (int k = j; k < n; k += m) { + int k2 = k + m2; + float t_real = w_real * real[k2] - w_imag * imag[k2]; + float t_imag = w_real * imag[k2] + w_imag * real[k2]; + + real[k2] = real[k] - t_real; + imag[k2] = imag[k] - t_imag; + real[k] += t_real; + imag[k] += t_imag; + } + + float w_temp = w_real; + w_real = w_real * wm_real - w_imag * wm_imag; + w_imag = w_temp * wm_imag + w_imag * wm_real; + } + } + + // 正向变换需要缩放 + if (forward) { + for (int i = 0; i < n; i++) { + real[i] /= n; + imag[i] /= n; + } + } + +} \ No newline at end of file diff --git a/main/display/lcd_display.h b/main/display/lcd_display.h index 3c6de33..7b06dad 100644 --- a/main/display/lcd_display.h +++ b/main/display/lcd_display.h @@ -8,6 +8,11 @@ #include #include +#include +#include +#include +#include +#include // Theme color structure struct ThemeColors { @@ -42,6 +47,53 @@ protected: virtual bool Lock(int timeout_ms = 0) override; virtual void Unlock() override; + // FFT 绘制方法 + void readAudioData(); + + + + virtual void clearScreen() override; + virtual void stopFft() override; // 停止FFT显示 + + // 定时任务方法 + void periodicUpdateTask(); + static void periodicUpdateTaskWrapper(void* arg); + + // LVGL变量 + lv_obj_t* canvas_ = nullptr; + uint16_t* canvas_buffer_ = nullptr; + void create_canvas(); + uint16_t get_bar_color(int x_pos); + void draw_spectrum(float *power_spectrum,int fft_size); + void draw_bar(int x,int y,int bar_width,int bar_height,uint16_t color,int bar_index); + void draw_block(int x,int y,int block_x_size,int block_y_size,uint16_t color,int bar_index); + + int canvas_width_; + int canvas_height_; + + + int16_t* audio_data=nullptr; + int16_t* frame_audio_data=nullptr; + uint32_t last_fft_update = 0; + bool fft_data_ready = false; + float* spectrum_data=nullptr; + + // FFT 相关变量 + int audio_display_last_update = 0; + std::atomic fft_task_should_stop = false; // FFT任务停止标志 + TaskHandle_t fft_task_handle = nullptr; // FFT任务句柄 + + float* fft_real; + float* fft_imag; + float* hanning_window_float; + void compute(float* real, float* imag, int n, bool forward); + + // 添加缺少的方法声明 + void drawSpectrumIfReady(); + void MyUI(); + + + protected: // 添加protected构造函数 LcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handle_t panel, DisplayFonts fonts, int width, int height); @@ -50,6 +102,7 @@ public: ~LcdDisplay(); virtual void SetEmotion(const char* emotion) override; virtual void SetIcon(const char* icon) override; + virtual void SetMusicInfo(const char* song_name) override; virtual void SetPreviewImage(const lv_img_dsc_t* img_dsc) override; #if CONFIG_USE_WECHAT_MESSAGE_STYLE virtual void SetChatMessage(const char* role, const char* content) override; @@ -57,6 +110,8 @@ public: // Add theme switching function virtual void SetTheme(const std::string& theme_name) override; + virtual void start() override; + }; // RGB LCD显示器 @@ -103,4 +158,4 @@ public: bool mirror_x, bool mirror_y, bool swap_xy, DisplayFonts fonts); }; -#endif // LCD_DISPLAY_H +#endif // LCD_DISPLAY_H \ No newline at end of file diff --git a/main/mcp_server.cc b/main/mcp_server.cc index c4853e9..dec3912 100644 --- a/main/mcp_server.cc +++ b/main/mcp_server.cc @@ -13,125 +13,173 @@ #include "application.h" #include "display.h" #include "board.h" +#include "boards/common/esp32_music.h" #define TAG "MCP" #define DEFAULT_TOOLCALL_STACK_SIZE 6144 -McpServer::McpServer() { +McpServer::McpServer() +{ } -McpServer::~McpServer() { - for (auto tool : tools_) { +McpServer::~McpServer() +{ + for (auto tool : tools_) + { delete tool; } tools_.clear(); } -void McpServer::AddCommonTools() { +void McpServer::AddCommonTools() +{ // To speed up the response time, we add the common tools to the beginning of // the tools list to utilize the prompt cache. // Backup the original tools list and restore it after adding the common tools. auto original_tools = std::move(tools_); - auto& board = Board::GetInstance(); + auto &board = Board::GetInstance(); AddTool("self.get_device_status", - "Provides the real-time information of the device, including the current status of the audio speaker, screen, battery, network, etc.\n" - "Use this tool for: \n" - "1. Answering questions about current condition (e.g. what is the current volume of the audio speaker?)\n" - "2. As the first step to control the device (e.g. turn up / down the volume of the audio speaker, etc.)", - PropertyList(), - [&board](const PropertyList& properties) -> ReturnValue { - return board.GetDeviceStatusJson(); - }); + "Provides the real-time information of the device, including the current status of the audio speaker, screen, battery, network, etc.\n" + "Use this tool for: \n" + "1. Answering questions about current condition (e.g. what is the current volume of the audio speaker?)\n" + "2. As the first step to control the device (e.g. turn up / down the volume of the audio speaker, etc.)", + PropertyList(), + [&board](const PropertyList &properties) -> ReturnValue + { + return board.GetDeviceStatusJson(); + }); - AddTool("self.audio_speaker.set_volume", - "Set the volume of the audio speaker. If the current volume is unknown, you must call `self.get_device_status` tool first and then call this tool.", - PropertyList({ - Property("volume", kPropertyTypeInteger, 0, 100) - }), - [&board](const PropertyList& properties) -> ReturnValue { - auto codec = board.GetAudioCodec(); - codec->SetOutputVolume(properties["volume"].value()); - return true; - }); - - auto backlight = board.GetBacklight(); - if (backlight) { - AddTool("self.screen.set_brightness", - "Set the brightness of the screen.", - PropertyList({ - Property("brightness", kPropertyTypeInteger, 0, 100) - }), - [backlight](const PropertyList& properties) -> ReturnValue { - uint8_t brightness = static_cast(properties["brightness"].value()); - backlight->SetBrightness(brightness, true); + AddTool("self.audio_speaker.set_volume", + "Set the volume of the audio speaker. If the current volume is unknown, you must call `self.get_device_status` tool first and then call this tool.", + PropertyList({Property("volume", kPropertyTypeInteger, 0, 100)}), + [&board](const PropertyList &properties) -> ReturnValue + { + auto codec = board.GetAudioCodec(); + codec->SetOutputVolume(properties["volume"].value()); return true; }); + + auto backlight = board.GetBacklight(); + if (backlight) + { + AddTool("self.screen.set_brightness", + "Set the brightness of the screen.", + PropertyList({Property("brightness", kPropertyTypeInteger, 0, 100)}), + [backlight](const PropertyList &properties) -> ReturnValue + { + uint8_t brightness = static_cast(properties["brightness"].value()); + backlight->SetBrightness(brightness, true); + return true; + }); } auto display = board.GetDisplay(); - if (display && !display->GetTheme().empty()) { + if (display && !display->GetTheme().empty()) + { AddTool("self.screen.set_theme", - "Set the theme of the screen. The theme can be `light` or `dark`.", - PropertyList({ - Property("theme", kPropertyTypeString) - }), - [display](const PropertyList& properties) -> ReturnValue { - display->SetTheme(properties["theme"].value().c_str()); - return true; - }); + "Set the theme of the screen. The theme can be `light` or `dark`.", + PropertyList({Property("theme", kPropertyTypeString)}), + [display](const PropertyList &properties) -> ReturnValue + { + display->SetTheme(properties["theme"].value().c_str()); + return true; + }); } auto camera = board.GetCamera(); - if (camera) { + if (camera) + { AddTool("self.camera.take_photo", - "Take a photo and explain it. Use this tool after the user asks you to see something.\n" - "Args:\n" - " `question`: The question that you want to ask about the photo.\n" - "Return:\n" - " A JSON object that provides the photo information.", - PropertyList({ - Property("question", kPropertyTypeString) - }), - [camera](const PropertyList& properties) -> ReturnValue { - if (!camera->Capture()) { - return "{\"success\": false, \"message\": \"Failed to capture photo\"}"; - } - auto question = properties["question"].value(); - return camera->Explain(question); - }); + "Take a photo and explain it. Use this tool after the user asks you to see something.\n" + "Args:\n" + " `question`: The question that you want to ask about the photo.\n" + "Return:\n" + " A JSON object that provides the photo information.", + PropertyList({Property("question", kPropertyTypeString)}), + [camera](const PropertyList &properties) -> ReturnValue + { + if (!camera->Capture()) + { + return "{\"success\": false, \"message\": \"Failed to capture photo\"}"; + } + auto question = properties["question"].value(); + return camera->Explain(question); + }); } auto music = board.GetMusic(); - if (music) { + if (music) + { AddTool("self.music.play_song", - "Play the specified song. When users request to play music, this tool will automatically retrieve song details and start streaming.\n" - "parameter:\n" - " `song_name`: The name of the song to be played.\n" - "return:\n" - " Play status information without confirmation, immediately play the song.", - PropertyList({ - Property("song_name", kPropertyTypeString) - }), - [music](const PropertyList& properties) -> ReturnValue { - auto song_name = properties["song_name"].value(); - if (!music->Download(song_name)) { - return "{\"success\": false, \"message\": \"Failed to obtain music resources\"}"; - } - auto download_result = music->GetDownloadResult(); - ESP_LOGD(TAG, "Music details result: %s", download_result.c_str()); - return true; - }); + "Play the specified song. When users request to play music, this tool will automatically retrieve song details and start streaming.\n" + "parameter:\n" + " `song_name`: The name of the song to be played.\n" + "return:\n" + " Play status information without confirmation, immediately play the song.", + PropertyList({Property("song_name", kPropertyTypeString)}), + [music](const PropertyList &properties) -> ReturnValue + { + auto song_name = properties["song_name"].value(); + if (!music->Download(song_name)) + { + return "{\"success\": false, \"message\": \"Failed to obtain music resources\"}"; + } + auto download_result = music->GetDownloadResult(); + ESP_LOGD(TAG, "Music details result: %s", download_result.c_str()); + return true; + }); + + AddTool("self.music.set_display_mode", + "Set the display mode for music playback. You can choose to display the spectrum or lyrics, for example, if the user says' open spectrum 'or' display spectrum ', the corresponding display mode will be set for' open lyrics' or 'display lyrics'.\n" + "parameter:\n" + " `mode`: Display mode, with optional values of 'spectrum' or 'lyrics'.\n" + "return:\n" + " Set result information.", + PropertyList({ + Property("mode", kPropertyTypeString) // Display mode: "spectrum" or "lyrics" + }), + [music](const PropertyList &properties) -> ReturnValue + { + auto mode_str = properties["mode"].value(); + + // Convert to lowercase for comparison + std::transform(mode_str.begin(), mode_str.end(), mode_str.begin(), ::tolower); + + if (mode_str == "spectrum" || mode_str == "频谱") + { + // Set to spectrum display mode + auto esp32_music = static_cast(music); + esp32_music->SetDisplayMode(Esp32Music::DISPLAY_MODE_SPECTRUM); + return "{\"success\": true, \"message\": \"Switched to spectrum display mode\"}"; + } + else if (mode_str == "lyrics" || mode_str == "歌词") + { + // Set to lyrics display mode + auto esp32_music = static_cast(music); + esp32_music->SetDisplayMode(Esp32Music::DISPLAY_MODE_LYRICS); + return "{\"success\": true, \"message\": \"Switched to lyrics display mode\"}"; + } + else + { + return "{\"success\": false, \"message\": \"Invalid display mode, please use 'spectrum' or 'lyrics'\"}"; + } + + return "{\"success\": false, \"message\": \"Failed to set display mode\"}"; + }); } // Restore the original tools list to the end of the tools list tools_.insert(tools_.end(), original_tools.begin(), original_tools.end()); } -void McpServer::AddTool(McpTool* tool) { +void McpServer::AddTool(McpTool *tool) +{ // Prevent adding duplicate tools - if (std::find_if(tools_.begin(), tools_.end(), [tool](const McpTool* t) { return t->name() == tool->name(); }) != tools_.end()) { + if (std::find_if(tools_.begin(), tools_.end(), [tool](const McpTool *t) + { return t->name() == tool->name(); }) != tools_.end()) + { ESP_LOGW(TAG, "Tool %s already added", tool->name().c_str()); return; } @@ -140,13 +188,16 @@ void McpServer::AddTool(McpTool* tool) { tools_.push_back(tool); } -void McpServer::AddTool(const std::string& name, const std::string& description, const PropertyList& properties, std::function callback) { +void McpServer::AddTool(const std::string &name, const std::string &description, const PropertyList &properties, std::function callback) +{ AddTool(new McpTool(name, description, properties, callback)); } -void McpServer::ParseMessage(const std::string& message) { - cJSON* json = cJSON_Parse(message.c_str()); - if (json == nullptr) { +void McpServer::ParseMessage(const std::string &message) +{ + cJSON *json = cJSON_Parse(message.c_str()); + if (json == nullptr) + { ESP_LOGE(TAG, "Failed to parse MCP message: %s", message.c_str()); return; } @@ -154,17 +205,22 @@ void McpServer::ParseMessage(const std::string& message) { cJSON_Delete(json); } -void McpServer::ParseCapabilities(const cJSON* capabilities) { +void McpServer::ParseCapabilities(const cJSON *capabilities) +{ auto vision = cJSON_GetObjectItem(capabilities, "vision"); - if (cJSON_IsObject(vision)) { + if (cJSON_IsObject(vision)) + { auto url = cJSON_GetObjectItem(vision, "url"); auto token = cJSON_GetObjectItem(vision, "token"); - if (cJSON_IsString(url)) { + if (cJSON_IsString(url)) + { auto camera = Board::GetInstance().GetCamera(); - if (camera) { + if (camera) + { std::string url_str = std::string(url->valuestring); std::string token_str; - if (cJSON_IsString(token)) { + if (cJSON_IsString(token)) + { token_str = std::string(token->valuestring); } camera->SetExplainUrl(url_str, token_str); @@ -173,44 +229,53 @@ void McpServer::ParseCapabilities(const cJSON* capabilities) { } } -void McpServer::ParseMessage(const cJSON* json) { +void McpServer::ParseMessage(const cJSON *json) +{ // Check JSONRPC version auto version = cJSON_GetObjectItem(json, "jsonrpc"); - if (version == nullptr || !cJSON_IsString(version) || strcmp(version->valuestring, "2.0") != 0) { + if (version == nullptr || !cJSON_IsString(version) || strcmp(version->valuestring, "2.0") != 0) + { ESP_LOGE(TAG, "Invalid JSONRPC version: %s", version ? version->valuestring : "null"); return; } - + // Check method auto method = cJSON_GetObjectItem(json, "method"); - if (method == nullptr || !cJSON_IsString(method)) { + if (method == nullptr || !cJSON_IsString(method)) + { ESP_LOGE(TAG, "Missing method"); return; } - + auto method_str = std::string(method->valuestring); - if (method_str.find("notifications") == 0) { + if (method_str.find("notifications") == 0) + { return; } - + // Check params auto params = cJSON_GetObjectItem(json, "params"); - if (params != nullptr && !cJSON_IsObject(params)) { + if (params != nullptr && !cJSON_IsObject(params)) + { ESP_LOGE(TAG, "Invalid params for method: %s", method_str.c_str()); return; } auto id = cJSON_GetObjectItem(json, "id"); - if (id == nullptr || !cJSON_IsNumber(id)) { + if (id == nullptr || !cJSON_IsNumber(id)) + { ESP_LOGE(TAG, "Invalid id for method: %s", method_str.c_str()); return; } auto id_int = id->valueint; - - if (method_str == "initialize") { - if (cJSON_IsObject(params)) { + + if (method_str == "initialize") + { + if (cJSON_IsObject(params)) + { auto capabilities = cJSON_GetObjectItem(params, "capabilities"); - if (cJSON_IsObject(capabilities)) { + if (cJSON_IsObject(capabilities)) + { ParseCapabilities(capabilities); } } @@ -219,47 +284,60 @@ void McpServer::ParseMessage(const cJSON* json) { message += app_desc->version; message += "\"}}"; ReplyResult(id_int, message); - } else if (method_str == "tools/list") { + } + else if (method_str == "tools/list") + { std::string cursor_str = ""; - if (params != nullptr) { + if (params != nullptr) + { auto cursor = cJSON_GetObjectItem(params, "cursor"); - if (cJSON_IsString(cursor)) { + if (cJSON_IsString(cursor)) + { cursor_str = std::string(cursor->valuestring); } } GetToolsList(id_int, cursor_str); - } else if (method_str == "tools/call") { - if (!cJSON_IsObject(params)) { + } + else if (method_str == "tools/call") + { + if (!cJSON_IsObject(params)) + { ESP_LOGE(TAG, "tools/call: Missing params"); ReplyError(id_int, "Missing params"); return; } auto tool_name = cJSON_GetObjectItem(params, "name"); - if (!cJSON_IsString(tool_name)) { + if (!cJSON_IsString(tool_name)) + { ESP_LOGE(TAG, "tools/call: Missing name"); ReplyError(id_int, "Missing name"); return; } auto tool_arguments = cJSON_GetObjectItem(params, "arguments"); - if (tool_arguments != nullptr && !cJSON_IsObject(tool_arguments)) { + if (tool_arguments != nullptr && !cJSON_IsObject(tool_arguments)) + { ESP_LOGE(TAG, "tools/call: Invalid arguments"); ReplyError(id_int, "Invalid arguments"); return; } auto stack_size = cJSON_GetObjectItem(params, "stackSize"); - if (stack_size != nullptr && !cJSON_IsNumber(stack_size)) { + if (stack_size != nullptr && !cJSON_IsNumber(stack_size)) + { ESP_LOGE(TAG, "tools/call: Invalid stackSize"); ReplyError(id_int, "Invalid stackSize"); return; } DoToolCall(id_int, std::string(tool_name->valuestring), tool_arguments, stack_size ? stack_size->valueint : DEFAULT_TOOLCALL_STACK_SIZE); - } else { + } + else + { ESP_LOGE(TAG, "Method not implemented: %s", method_str.c_str()); ReplyError(id_int, "Method not implemented: " + method_str); } } -void McpServer::ReplyResult(int id, const std::string& result) { +void McpServer::ReplyResult(int id, const std::string &result) +{ std::string payload = "{\"jsonrpc\":\"2.0\",\"id\":"; payload += std::to_string(id) + ",\"result\":"; payload += result; @@ -267,7 +345,8 @@ void McpServer::ReplyResult(int id, const std::string& result) { Application::GetInstance().SendMcpMessage(payload); } -void McpServer::ReplyError(int id, const std::string& message) { +void McpServer::ReplyError(int id, const std::string &message) +{ std::string payload = "{\"jsonrpc\":\"2.0\",\"id\":"; payload += std::to_string(id); payload += ",\"error\":{\"message\":\""; @@ -276,94 +355,120 @@ void McpServer::ReplyError(int id, const std::string& message) { Application::GetInstance().SendMcpMessage(payload); } -void McpServer::GetToolsList(int id, const std::string& cursor) { +void McpServer::GetToolsList(int id, const std::string &cursor) +{ const int max_payload_size = 8000; std::string json = "{\"tools\":["; - + bool found_cursor = cursor.empty(); auto it = tools_.begin(); std::string next_cursor = ""; - - while (it != tools_.end()) { + + while (it != tools_.end()) + { // 如果我们还没有找到起始位置,继续搜索 - if (!found_cursor) { - if ((*it)->name() == cursor) { + if (!found_cursor) + { + if ((*it)->name() == cursor) + { found_cursor = true; - } else { + } + else + { ++it; continue; } } - + // 添加tool前检查大小 std::string tool_json = (*it)->to_json() + ","; - if (json.length() + tool_json.length() + 30 > max_payload_size) { + if (json.length() + tool_json.length() + 30 > max_payload_size) + { // 如果添加这个tool会超出大小限制,设置next_cursor并退出循环 next_cursor = (*it)->name(); break; } - + json += tool_json; ++it; } - - if (json.back() == ',') { + + if (json.back() == ',') + { json.pop_back(); } - - if (json.back() == '[' && !tools_.empty()) { + + if (json.back() == '[' && !tools_.empty()) + { // 如果没有添加任何tool,返回错误 ESP_LOGE(TAG, "tools/list: Failed to add tool %s because of payload size limit", next_cursor.c_str()); ReplyError(id, "Failed to add tool " + next_cursor + " because of payload size limit"); return; } - if (next_cursor.empty()) { + if (next_cursor.empty()) + { json += "]}"; - } else { + } + else + { json += "],\"nextCursor\":\"" + next_cursor + "\"}"; } - + ReplyResult(id, json); } -void McpServer::DoToolCall(int id, const std::string& tool_name, const cJSON* tool_arguments, int stack_size) { - auto tool_iter = std::find_if(tools_.begin(), tools_.end(), - [&tool_name](const McpTool* tool) { - return tool->name() == tool_name; - }); - - if (tool_iter == tools_.end()) { +void McpServer::DoToolCall(int id, const std::string &tool_name, const cJSON *tool_arguments, int stack_size) +{ + auto tool_iter = std::find_if(tools_.begin(), tools_.end(), + [&tool_name](const McpTool *tool) + { + return tool->name() == tool_name; + }); + + if (tool_iter == tools_.end()) + { ESP_LOGE(TAG, "tools/call: Unknown tool: %s", tool_name.c_str()); ReplyError(id, "Unknown tool: " + tool_name); return; } PropertyList arguments = (*tool_iter)->properties(); - try { - for (auto& argument : arguments) { + try + { + for (auto &argument : arguments) + { bool found = false; - if (cJSON_IsObject(tool_arguments)) { + if (cJSON_IsObject(tool_arguments)) + { auto value = cJSON_GetObjectItem(tool_arguments, argument.name().c_str()); - if (argument.type() == kPropertyTypeBoolean && cJSON_IsBool(value)) { + if (argument.type() == kPropertyTypeBoolean && cJSON_IsBool(value)) + { argument.set_value(value->valueint == 1); found = true; - } else if (argument.type() == kPropertyTypeInteger && cJSON_IsNumber(value)) { + } + else if (argument.type() == kPropertyTypeInteger && cJSON_IsNumber(value)) + { argument.set_value(value->valueint); found = true; - } else if (argument.type() == kPropertyTypeString && cJSON_IsString(value)) { + } + else if (argument.type() == kPropertyTypeString && cJSON_IsString(value)) + { argument.set_value(value->valuestring); found = true; } } - if (!argument.has_default_value() && !found) { + if (!argument.has_default_value() && !found) + { ESP_LOGE(TAG, "tools/call: Missing valid argument: %s", argument.name().c_str()); ReplyError(id, "Missing valid argument: " + argument.name()); return; } } - } catch (const std::exception& e) { + } + catch (const std::exception &e) + { ESP_LOGE(TAG, "tools/call: %s", e.what()); ReplyError(id, e.what()); return; @@ -377,13 +482,13 @@ void McpServer::DoToolCall(int id, const std::string& tool_name, const cJSON* to esp_pthread_set_cfg(&cfg); // Use a thread to call the tool to avoid blocking the main thread - tool_call_thread_ = std::thread([this, id, tool_iter, arguments = std::move(arguments)]() { + tool_call_thread_ = std::thread([this, id, tool_iter, arguments = std::move(arguments)]() + { try { ReplyResult(id, (*tool_iter)->Call(arguments)); } catch (const std::exception& e) { ESP_LOGE(TAG, "tools/call: %s", e.what()); ReplyError(id, e.what()); - } - }); + } }); tool_call_thread_.detach(); } \ No newline at end of file diff --git a/sdkconfig b/sdkconfig deleted file mode 100644 index 7668812..0000000 --- a/sdkconfig +++ /dev/null @@ -1,3240 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Configuration -# -CONFIG_SOC_ADC_SUPPORTED=y -CONFIG_SOC_UART_SUPPORTED=y -CONFIG_SOC_PCNT_SUPPORTED=y -CONFIG_SOC_PHY_SUPPORTED=y -CONFIG_SOC_WIFI_SUPPORTED=y -CONFIG_SOC_TWAI_SUPPORTED=y -CONFIG_SOC_GDMA_SUPPORTED=y -CONFIG_SOC_UHCI_SUPPORTED=y -CONFIG_SOC_AHB_GDMA_SUPPORTED=y -CONFIG_SOC_GPTIMER_SUPPORTED=y -CONFIG_SOC_LCDCAM_SUPPORTED=y -CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y -CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y -CONFIG_SOC_MCPWM_SUPPORTED=y -CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y -CONFIG_SOC_CACHE_SUPPORT_WRAP=y -CONFIG_SOC_ULP_SUPPORTED=y -CONFIG_SOC_ULP_FSM_SUPPORTED=y -CONFIG_SOC_RISCV_COPROC_SUPPORTED=y -CONFIG_SOC_BT_SUPPORTED=y -CONFIG_SOC_USB_OTG_SUPPORTED=y -CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y -CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y -CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y -CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y -CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y -CONFIG_SOC_EFUSE_SUPPORTED=y -CONFIG_SOC_SDMMC_HOST_SUPPORTED=y -CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y -CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y -CONFIG_SOC_RTC_MEM_SUPPORTED=y -CONFIG_SOC_PSRAM_DMA_CAPABLE=y -CONFIG_SOC_XT_WDT_SUPPORTED=y -CONFIG_SOC_I2S_SUPPORTED=y -CONFIG_SOC_RMT_SUPPORTED=y -CONFIG_SOC_SDM_SUPPORTED=y -CONFIG_SOC_GPSPI_SUPPORTED=y -CONFIG_SOC_LEDC_SUPPORTED=y -CONFIG_SOC_I2C_SUPPORTED=y -CONFIG_SOC_SYSTIMER_SUPPORTED=y -CONFIG_SOC_SUPPORT_COEXISTENCE=y -CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y -CONFIG_SOC_AES_SUPPORTED=y -CONFIG_SOC_MPI_SUPPORTED=y -CONFIG_SOC_SHA_SUPPORTED=y -CONFIG_SOC_HMAC_SUPPORTED=y -CONFIG_SOC_DIG_SIGN_SUPPORTED=y -CONFIG_SOC_FLASH_ENC_SUPPORTED=y -CONFIG_SOC_SECURE_BOOT_SUPPORTED=y -CONFIG_SOC_MEMPROT_SUPPORTED=y -CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y -CONFIG_SOC_BOD_SUPPORTED=y -CONFIG_SOC_CLK_TREE_SUPPORTED=y -CONFIG_SOC_MPU_SUPPORTED=y -CONFIG_SOC_WDT_SUPPORTED=y -CONFIG_SOC_SPI_FLASH_SUPPORTED=y -CONFIG_SOC_RNG_SUPPORTED=y -CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y -CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y -CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y -CONFIG_SOC_PM_SUPPORTED=y -CONFIG_SOC_SIMD_INSTRUCTION_SUPPORTED=y -CONFIG_SOC_XTAL_SUPPORT_40M=y -CONFIG_SOC_APPCPU_HAS_CLOCK_GATING_BUG=y -CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_ARBITER_SUPPORTED=y -CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y -CONFIG_SOC_ADC_MONITOR_SUPPORTED=y -CONFIG_SOC_ADC_DMA_SUPPORTED=y -CONFIG_SOC_ADC_PERIPH_NUM=2 -CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 -CONFIG_SOC_ADC_ATTEN_NUM=4 -CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 -CONFIG_SOC_ADC_PATT_LEN_MAX=24 -CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4 -CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 -CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2 -CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611 -CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y -CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y -CONFIG_SOC_ADC_SHARED_POWER=y -CONFIG_SOC_APB_BACKUP_DMA=y -CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y -CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED=y -CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y -CONFIG_SOC_CACHE_ACS_INVALID_STATE_ON_PANIC=y -CONFIG_SOC_CPU_CORES_NUM=2 -CONFIG_SOC_CPU_INTR_NUM=32 -CONFIG_SOC_CPU_HAS_FPU=y -CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y -CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40 -CONFIG_SOC_SIMD_PREFERRED_DATA_ALIGNMENT=16 -CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096 -CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 -CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 -CONFIG_SOC_AHB_GDMA_VERSION=1 -CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1 -CONFIG_SOC_GDMA_PAIRS_PER_GROUP=5 -CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=5 -CONFIG_SOC_AHB_GDMA_SUPPORT_PSRAM=y -CONFIG_SOC_GPIO_PORT=1 -CONFIG_SOC_GPIO_PIN_COUNT=49 -CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y -CONFIG_SOC_GPIO_FILTER_CLK_SUPPORT_APB=y -CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y -CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y -CONFIG_SOC_GPIO_VALID_GPIO_MASK=0x1FFFFFFFFFFFF -CONFIG_SOC_GPIO_IN_RANGE_MAX=48 -CONFIG_SOC_GPIO_OUT_RANGE_MAX=48 -CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0001FFFFFC000000 -CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y -CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 -CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y -CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_GPIO_OUT_AUTO_ENABLE=y -CONFIG_SOC_I2C_NUM=2 -CONFIG_SOC_HP_I2C_NUM=2 -CONFIG_SOC_I2C_FIFO_LEN=32 -CONFIG_SOC_I2C_CMD_REG_NUM=8 -CONFIG_SOC_I2C_SUPPORT_SLAVE=y -CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y -CONFIG_SOC_I2C_SUPPORT_XTAL=y -CONFIG_SOC_I2C_SUPPORT_RTC=y -CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y -CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y -CONFIG_SOC_I2S_NUM=2 -CONFIG_SOC_I2S_HW_VERSION_2=y -CONFIG_SOC_I2S_SUPPORTS_XTAL=y -CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y -CONFIG_SOC_I2S_SUPPORTS_PCM=y -CONFIG_SOC_I2S_SUPPORTS_PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y -CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y -CONFIG_SOC_I2S_SUPPORTS_PDM2PCM=y -CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 -CONFIG_SOC_I2S_PDM_MAX_RX_LINES=4 -CONFIG_SOC_I2S_SUPPORTS_TDM=y -CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y -CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y -CONFIG_SOC_LEDC_TIMER_NUM=4 -CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=14 -CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y -CONFIG_SOC_MCPWM_GROUPS=2 -CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 -CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 -CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 -CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y -CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 -CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 -CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y -CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 -CONFIG_SOC_MMU_PERIPH_NUM=1 -CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 -CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 -CONFIG_SOC_PCNT_GROUPS=1 -CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 -CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 -CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 -CONFIG_SOC_RMT_GROUPS=1 -CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=4 -CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=4 -CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 -CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48 -CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y -CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y -CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y -CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y -CONFIG_SOC_RMT_SUPPORT_XTAL=y -CONFIG_SOC_RMT_SUPPORT_RC_FAST=y -CONFIG_SOC_RMT_SUPPORT_APB=y -CONFIG_SOC_RMT_SUPPORT_DMA=y -CONFIG_SOC_LCD_I80_SUPPORTED=y -CONFIG_SOC_LCD_RGB_SUPPORTED=y -CONFIG_SOC_LCD_I80_BUSES=1 -CONFIG_SOC_LCD_RGB_PANELS=1 -CONFIG_SOC_LCD_I80_BUS_WIDTH=16 -CONFIG_SOC_LCD_RGB_DATA_WIDTH=16 -CONFIG_SOC_LCD_SUPPORT_RGB_YUV_CONV=y -CONFIG_SOC_LCDCAM_I80_NUM_BUSES=1 -CONFIG_SOC_LCDCAM_I80_BUS_WIDTH=16 -CONFIG_SOC_LCDCAM_RGB_NUM_PANELS=1 -CONFIG_SOC_LCDCAM_RGB_DATA_WIDTH=16 -CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128 -CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=549 -CONFIG_SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH=128 -CONFIG_SOC_RTCIO_PIN_COUNT=22 -CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y -CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y -CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y -CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y -CONFIG_SOC_SDM_GROUPS=1 -CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 -CONFIG_SOC_SDM_CLK_SUPPORT_APB=y -CONFIG_SOC_SPI_PERIPH_NUM=3 -CONFIG_SOC_SPI_MAX_CS_NUM=6 -CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 -CONFIG_SOC_SPI_SUPPORT_DDRCLK=y -CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y -CONFIG_SOC_SPI_SUPPORT_CD_SIG=y -CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y -CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y -CONFIG_SOC_SPI_SUPPORT_CLK_APB=y -CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y -CONFIG_SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT=y -CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y -CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16 -CONFIG_SOC_SPI_SUPPORT_OCT=y -CONFIG_SOC_SPI_SCT_SUPPORTED=y -CONFIG_SOC_SPI_SCT_REG_NUM=14 -CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y -CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA -CONFIG_SOC_MEMSPI_SRC_FREQ_120M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y -CONFIG_SOC_SPIRAM_SUPPORTED=y -CONFIG_SOC_SPIRAM_XIP_SUPPORTED=y -CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 -CONFIG_SOC_SYSTIMER_ALARM_NUM=3 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20 -CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y -CONFIG_SOC_SYSTIMER_INT_LEVEL=y -CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y -CONFIG_SOC_TIMER_GROUPS=2 -CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 -CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54 -CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y -CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y -CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 -CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 -CONFIG_SOC_TOUCH_SENSOR_VERSION=2 -CONFIG_SOC_TOUCH_SENSOR_NUM=15 -CONFIG_SOC_TOUCH_MIN_CHAN_ID=1 -CONFIG_SOC_TOUCH_MAX_CHAN_ID=14 -CONFIG_SOC_TOUCH_SUPPORT_BENCHMARK=y -CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y -CONFIG_SOC_TOUCH_SUPPORT_WATERPROOF=y -CONFIG_SOC_TOUCH_SUPPORT_PROX_SENSING=y -CONFIG_SOC_TOUCH_SUPPORT_DENOISE_CHAN=y -CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3 -CONFIG_SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED=y -CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 -CONFIG_SOC_TWAI_CONTROLLER_NUM=1 -CONFIG_SOC_TWAI_MASK_FILTER_NUM=1 -CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y -CONFIG_SOC_TWAI_BRP_MIN=2 -CONFIG_SOC_TWAI_BRP_MAX=16384 -CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y -CONFIG_SOC_UART_NUM=3 -CONFIG_SOC_UART_HP_NUM=3 -CONFIG_SOC_UART_FIFO_LEN=128 -CONFIG_SOC_UART_BITRATE_MAX=5000000 -CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y -CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y -CONFIG_SOC_UART_SUPPORT_APB_CLK=y -CONFIG_SOC_UART_SUPPORT_RTC_CLK=y -CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y -CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y -CONFIG_SOC_UHCI_NUM=1 -CONFIG_SOC_USB_OTG_PERIPH_NUM=1 -CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968 -CONFIG_SOC_SHA_SUPPORT_DMA=y -CONFIG_SOC_SHA_SUPPORT_RESUME=y -CONFIG_SOC_SHA_GDMA=y -CONFIG_SOC_SHA_SUPPORT_SHA1=y -CONFIG_SOC_SHA_SUPPORT_SHA224=y -CONFIG_SOC_SHA_SUPPORT_SHA256=y -CONFIG_SOC_SHA_SUPPORT_SHA384=y -CONFIG_SOC_SHA_SUPPORT_SHA512=y -CONFIG_SOC_SHA_SUPPORT_SHA512_224=y -CONFIG_SOC_SHA_SUPPORT_SHA512_256=y -CONFIG_SOC_SHA_SUPPORT_SHA512_T=y -CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 -CONFIG_SOC_MPI_OPERATIONS_NUM=3 -CONFIG_SOC_RSA_MAX_BIT_LEN=4096 -CONFIG_SOC_AES_SUPPORT_DMA=y -CONFIG_SOC_AES_GDMA=y -CONFIG_SOC_AES_SUPPORT_AES_128=y -CONFIG_SOC_AES_SUPPORT_AES_256=y -CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_CPU_PD=y -CONFIG_SOC_PM_SUPPORT_TAGMEM_PD=y -CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y -CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y -CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y -CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y -CONFIG_SOC_PM_SUPPORT_MODEM_PD=y -CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y -CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y -CONFIG_SOC_PM_CPU_RETENTION_BY_RTCCNTL=y -CONFIG_SOC_PM_MODEM_RETENTION_BY_BACKUPDMA=y -CONFIG_SOC_PM_MODEM_PD_BY_SW=y -CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y -CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y -CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y -CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y -CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y -CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y -CONFIG_SOC_EFUSE_DIS_DOWNLOAD_DCACHE=y -CONFIG_SOC_EFUSE_HARD_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_USB_JTAG=y -CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y -CONFIG_SOC_EFUSE_DIS_ICACHE=y -CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y -CONFIG_SOC_SECURE_BOOT_V2_RSA=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 -CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y -CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y -CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_OPTIONS=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_256=y -CONFIG_SOC_MEMPROT_CPU_PREFETCH_PAD_SIZE=16 -CONFIG_SOC_MEMPROT_MEM_ALIGN_SIZE=256 -CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 -CONFIG_SOC_MAC_BB_PD_MEM_SIZE=192 -CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12 -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y -CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_FLASH_OPI_MODE=y -CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y -CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y -CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y -CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y -CONFIG_SOC_MEMSPI_CORE_CLK_SHARED_WITH_PSRAM=y -CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y -CONFIG_SOC_COEX_HW_PTI=y -CONFIG_SOC_EXTERNAL_COEX_LEADER_TX_LINE=y -CONFIG_SOC_SDMMC_USE_GPIO_MATRIX=y -CONFIG_SOC_SDMMC_NUM_SLOTS=2 -CONFIG_SOC_SDMMC_SUPPORT_XTAL_CLOCK=y -CONFIG_SOC_SDMMC_DELAY_PHASE_NUM=4 -CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y -CONFIG_SOC_WIFI_HW_TSF=y -CONFIG_SOC_WIFI_FTM_SUPPORT=y -CONFIG_SOC_WIFI_GCMP_SUPPORT=y -CONFIG_SOC_WIFI_WAPI_SUPPORT=y -CONFIG_SOC_WIFI_CSI_SUPPORT=y -CONFIG_SOC_WIFI_MESH_SUPPORT=y -CONFIG_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y -CONFIG_SOC_WIFI_PHY_NEEDS_USB_WORKAROUND=y -CONFIG_SOC_BLE_SUPPORTED=y -CONFIG_SOC_BLE_MESH_SUPPORTED=y -CONFIG_SOC_BLE_50_SUPPORTED=y -CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y -CONFIG_SOC_BLUFI_SUPPORTED=y -CONFIG_SOC_ULP_HAS_ADC=y -CONFIG_SOC_PHY_COMBO_MODULE=y -CONFIG_IDF_CMAKE=y -CONFIG_IDF_TOOLCHAIN="gcc" -CONFIG_IDF_TOOLCHAIN_GCC=y -CONFIG_IDF_TARGET_ARCH_XTENSA=y -CONFIG_IDF_TARGET_ARCH="xtensa" -CONFIG_IDF_TARGET="esp32s3" -CONFIG_IDF_INIT_VERSION="$IDF_INIT_VERSION" -CONFIG_IDF_TARGET_ESP32S3=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0x0009 - -# -# Build type -# -CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y -# CONFIG_APP_BUILD_TYPE_RAM is not set -CONFIG_APP_BUILD_GENERATE_BINARIES=y -CONFIG_APP_BUILD_BOOTLOADER=y -CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y -# CONFIG_APP_REPRODUCIBLE_BUILD is not set -# CONFIG_APP_NO_BLOBS is not set -# end of Build type - -# -# Bootloader config -# - -# -# Bootloader manager -# -CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y -CONFIG_BOOTLOADER_PROJECT_VER=1 -# end of Bootloader manager - -# -# Application Rollback -# -CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y -# CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK is not set -# end of Application Rollback - -# -# Bootloader Rollback -# -# end of Bootloader Rollback - -CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set - -# -# Log -# -CONFIG_BOOTLOADER_LOG_VERSION_1=y -CONFIG_BOOTLOADER_LOG_VERSION=1 -CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y -# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_INFO is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=0 - -# -# Format -# -# CONFIG_BOOTLOADER_LOG_COLORS is not set -CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y -# end of Format - -# -# Settings -# -CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y -CONFIG_BOOTLOADER_LOG_MODE_TEXT=y -# end of Settings -# end of Log - -# -# Serial Flash Configurations -# -# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set -CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y -# end of Serial Flash Configurations - -CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y -# CONFIG_BOOTLOADER_FACTORY_RESET is not set -# CONFIG_BOOTLOADER_APP_TEST is not set -CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y -CONFIG_BOOTLOADER_WDT_ENABLE=y -# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set -CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y -CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON=y -CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS=y -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0x10 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -CONFIG_BOOTLOADER_RESERVE_RTC_MEM=y -# end of Bootloader config - -# -# Security features -# -CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y -CONFIG_SECURE_BOOT_V2_PREFERRED=y -# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set -# CONFIG_SECURE_BOOT is not set -# CONFIG_SECURE_FLASH_ENC_ENABLED is not set -CONFIG_SECURE_ROM_DL_MODE_ENABLED=y -# end of Security features - -# -# Application manager -# -CONFIG_APP_COMPILE_TIME_DATE=y -# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set -# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set -# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set -CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 -# end of Application manager - -CONFIG_ESP_ROM_HAS_CRC_LE=y -CONFIG_ESP_ROM_HAS_CRC_BE=y -CONFIG_ESP_ROM_HAS_MZ_CRC32=y -CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y -CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y -CONFIG_ESP_ROM_USB_OTG_NUM=3 -CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=4 -CONFIG_ESP_ROM_HAS_ERASE_0_REGION_BUG=y -CONFIG_ESP_ROM_HAS_ENCRYPTED_WRITES_USING_LEGACY_DRV=y -CONFIG_ESP_ROM_GET_CLK_FREQ=y -CONFIG_ESP_ROM_HAS_HAL_WDT=y -CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y -CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y -CONFIG_ESP_ROM_HAS_SPI_FLASH=y -CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y -CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y -CONFIG_ESP_ROM_HAS_NEWLIB=y -CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y -CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y -CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y -CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y -CONFIG_ESP_ROM_HAS_FLASH_COUNT_PAGES_BUG=y -CONFIG_ESP_ROM_HAS_CACHE_SUSPEND_WAITI_BUG=y -CONFIG_ESP_ROM_HAS_CACHE_WRITEBACK_BUG=y -CONFIG_ESP_ROM_HAS_SW_FLOAT=y -CONFIG_ESP_ROM_HAS_VERSION=y -CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y -CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y -CONFIG_ESP_ROM_CONSOLE_OUTPUT_SECONDARY=y - -# -# Boot ROM Behavior -# -CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y -# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set -# end of Boot ROM Behavior - -# -# Serial flasher config -# -# CONFIG_ESPTOOLPY_NO_STUB is not set -# CONFIG_ESPTOOLPY_OCT_FLASH is not set -CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT=y -CONFIG_ESPTOOLPY_FLASHMODE_QIO=y -# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y -CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_120M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_80M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="80m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="16MB" -# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# end of Serial flasher config - -# -# Partition Table -# -# CONFIG_PARTITION_TABLE_SINGLE_APP is not set -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set -CONFIG_PARTITION_TABLE_CUSTOM=y -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions/v1/16m.csv" -CONFIG_PARTITION_TABLE_FILENAME="partitions/v1/16m.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -# end of Partition Table - -# -# Xiaozhi Assistant -# -CONFIG_OTA_URL="https://api.tenclass.net/xiaozhi/ota/" -CONFIG_LANGUAGE_ZH_CN=y -# CONFIG_LANGUAGE_ZH_TW is not set -# CONFIG_LANGUAGE_EN_US is not set -# CONFIG_LANGUAGE_JA_JP is not set -# CONFIG_LANGUAGE_KO_KR is not set -# CONFIG_LANGUAGE_VI_VN is not set -# CONFIG_LANGUAGE_TH_TH is not set -# CONFIG_LANGUAGE_DE_DE is not set -# CONFIG_LANGUAGE_FR_FR is not set -# CONFIG_LANGUAGE_ES_ES is not set -# CONFIG_LANGUAGE_IT_IT is not set -# CONFIG_LANGUAGE_RU_RU is not set -# CONFIG_LANGUAGE_AR_SA is not set -# CONFIG_LANGUAGE_HI_IN is not set -# CONFIG_LANGUAGE_PT_PT is not set -# CONFIG_LANGUAGE_PL_PL is not set -# CONFIG_LANGUAGE_CS_CZ is not set -# CONFIG_LANGUAGE_FI_FI is not set -# CONFIG_LANGUAGE_TR_TR is not set -# CONFIG_LANGUAGE_ID_ID is not set -# CONFIG_LANGUAGE_UK_UA is not set -# CONFIG_LANGUAGE_RO_RO is not set -CONFIG_BOARD_TYPE_BREAD_COMPACT_WIFI=y -# CONFIG_BOARD_TYPE_BREAD_COMPACT_WIFI_LCD is not set -# CONFIG_BOARD_TYPE_BREAD_COMPACT_WIFI_CAM is not set -# CONFIG_BOARD_TYPE_BREAD_COMPACT_ML307 is not set -# CONFIG_BOARD_TYPE_ESP32S3_KORVO2_V3 is not set -# CONFIG_BOARD_TYPE_ESP_SPARKBOT is not set -# CONFIG_BOARD_TYPE_ESP_SPOT_S3 is not set -# CONFIG_BOARD_TYPE_ECHOEAR is not set -# CONFIG_BOARD_TYPE_ESP_BOX_3 is not set -# CONFIG_BOARD_TYPE_ESP_BOX is not set -# CONFIG_BOARD_TYPE_ESP_BOX_LITE is not set -# CONFIG_BOARD_TYPE_KEVIN_BOX_1 is not set -# CONFIG_BOARD_TYPE_KEVIN_BOX_2 is not set -# CONFIG_BOARD_TYPE_KEVIN_SP_V3_DEV is not set -# CONFIG_BOARD_TYPE_KEVIN_SP_V4_DEV is not set -# CONFIG_BOARD_TYPE_KEVIN_YUYING_313LCD is not set -# CONFIG_BOARD_TYPE_LICHUANG_DEV is not set -# CONFIG_BOARD_TYPE_DF_K10 is not set -# CONFIG_BOARD_TYPE_DF_S3_AI_CAM is not set -# CONFIG_BOARD_TYPE_MAGICLICK_2P4 is not set -# CONFIG_BOARD_TYPE_MAGICLICK_2P5 is not set -# CONFIG_BOARD_TYPE_M5STACK_CORE_S3 is not set -# CONFIG_BOARD_TYPE_ATOMS3_ECHO_BASE is not set -# CONFIG_BOARD_TYPE_ATOMS3R_ECHO_BASE is not set -# CONFIG_BOARD_TYPE_ATOMS3R_CAM_M12_ECHO_BASE is not set -# CONFIG_BOARD_TYPE_ATOM_ECHOS3R is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_AMOLED_1_8 is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_AMOLED_2_06 is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_AMOLED_1_75 is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_LCD_1_85C is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_LCD_1_85 is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_LCD_1_46 is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_LCD_3_5 is not set -# CONFIG_BOARD_TYPE_ESP32S3_Touch_LCD_3_5B is not set -# CONFIG_BOARD_TYPE_TUDOUZI is not set -# CONFIG_BOARD_TYPE_LILYGO_T_CIRCLE_S3 is not set -# CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1 is not set -# CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2 is not set -# CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA is not set -# CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA_NO_BATTERY is not set -# CONFIG_BOARD_TYPE_MOVECALL_MOJI_ESP32S3 is not set -# CONFIG_BOARD_TYPE_MOVECALL_CUICAN_ESP32S3 is not set -# CONFIG_BOARD_TYPE_ATK_DNESP32S3 is not set -# CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX is not set -# CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX0 is not set -# CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX2_WIFI is not set -# CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX2_4G is not set -# CONFIG_BOARD_TYPE_ATK_DNESP32S3M_WIFI is not set -# CONFIG_BOARD_TYPE_ATK_DNESP32S3M_4G is not set -# CONFIG_BOARD_TYPE_DU_CHATX is not set -# CONFIG_BOARD_TYPE_ESP32S3_Taiji_Pi is not set -# CONFIG_BOARD_TYPE_XINGZHI_Cube_0_85TFT_WIFI is not set -# CONFIG_BOARD_TYPE_XINGZHI_Cube_0_85TFT_ML307 is not set -# CONFIG_BOARD_TYPE_XINGZHI_Cube_0_96OLED_WIFI is not set -# CONFIG_BOARD_TYPE_XINGZHI_Cube_0_96OLED_ML307 is not set -# CONFIG_BOARD_TYPE_XINGZHI_Cube_1_54TFT_WIFI is not set -# CONFIG_BOARD_TYPE_XINGZHI_Cube_1_54TFT_ML307 is not set -# CONFIG_BOARD_TYPE_SENSECAP_WATCHER is not set -# CONFIG_BOARD_TYPE_DOIT_S3_AIBOX is not set -# CONFIG_BOARD_TYPE_MIXGO_NOVA is not set -# CONFIG_BOARD_TYPE_GENJUTECH_S3_1_54TFT is not set -# CONFIG_BOARD_TYPE_ESP_S3_LCD_EV_Board is not set -# CONFIG_BOARD_TYPE_ESP_S3_LCD_EV_Board_2 is not set -# CONFIG_BOARD_TYPE_ZHENGCHEN_1_54TFT_WIFI is not set -# CONFIG_BOARD_TYPE_ZHENGCHEN_1_54TFT_ML307 is not set -# CONFIG_BOARD_TYPE_MINSI_K08_DUAL is not set -# CONFIG_BOARD_TYPE_ESP32_S3_1_54_MUMA is not set -# CONFIG_BOARD_TYPE_ESP32_S3_1_28_BOX is not set -# CONFIG_BOARD_TYPE_OTTO_ROBOT is not set -# CONFIG_BOARD_TYPE_ELECTRON_BOT is not set -# CONFIG_BOARD_TYPE_JIUCHUAN is not set -# CONFIG_BOARD_TYPE_LABPLUS_MPYTHON_V3 is not set -# CONFIG_BOARD_TYPE_LABPLUS_LEDONG_V2 is not set -CONFIG_OLED_SSD1306_128X32=y -# CONFIG_OLED_SSD1306_128X64 is not set -# CONFIG_OLED_SH1106_128X64 is not set -# CONFIG_USE_WECHAT_MESSAGE_STYLE is not set -CONFIG_USE_AFE_WAKE_WORD=y -CONFIG_USE_AUDIO_PROCESSOR=y -# CONFIG_USE_SERVER_AEC is not set -# CONFIG_USE_AUDIO_DEBUGGER is not set -# CONFIG_USE_ACOUSTIC_WIFI_PROVISIONING is not set -# CONFIG_RECEIVE_CUSTOM_MESSAGE is not set -# end of Xiaozhi Assistant - -# -# ESP Speech Recognition -# -CONFIG_MODEL_IN_FLASH=y -# CONFIG_MODEL_IN_SDCARD is not set -CONFIG_AFE_INTERFACE_V1=y -CONFIG_SR_NSN_WEBRTC=y -# CONFIG_SR_NSN_NSNET2 is not set -CONFIG_SR_VADN_WEBRTC=y -# CONFIG_SR_VADN_VADNET1_MEDIUM is not set - -# -# Load Multiple Wake Words (WakeNet9s) -# -# CONFIG_SR_WN_WN9S_HILEXIN is not set -# CONFIG_SR_WN_WN9S_HIESP is not set -# CONFIG_SR_WN_WN9S_NIHAOXIAOZHI is not set -# CONFIG_SR_WN_WN9S_HIJASON is not set -# end of Load Multiple Wake Words (WakeNet9s) - -# -# Load Multiple Wake Words (WakeNet9) -# -# CONFIG_SR_WN_WN9_HILEXIN is not set -# CONFIG_SR_WN_WN9_NIHAOMIAOBAN_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOAITONGXUE is not set -CONFIG_SR_WN_WN9_NIHAOXIAOZHI_TTS=y -# CONFIG_SR_WN_WN9_ALEXA is not set -# CONFIG_SR_WN_WN9_HIESP is not set -# CONFIG_SR_WN_WN9_JARVIS_TTS is not set -# CONFIG_SR_WN_WN9_COMPUTER_TTS is not set -# CONFIG_SR_WN_WN9_HEYWILLOW_TTS is not set -# CONFIG_SR_WN_WN9_HIMFIVE is not set -# CONFIG_SR_WN_WN9_SOPHIA_TTS is not set -# CONFIG_SR_WN_WN9_HEYWANDA_TTS is not set -# CONFIG_SR_WN_WN9_HIJOLLY_TTS2 is not set -# CONFIG_SR_WN_WN9_HIFAIRY_TTS2 is not set -# CONFIG_SR_WN_WN9_HEYPRINTER_TTS is not set -# CONFIG_SR_WN_WN9_MYCROFT_TTS is not set -# CONFIG_SR_WN_WN9_HIJOY_TTS is not set -# CONFIG_SR_WN_WN9_HIJASON_TTS2 is not set -# CONFIG_SR_WN_WN9_ASTROLABE_TTS is not set -# CONFIG_SR_WN_WN9_HEYILY_TTS2 is not set -# CONFIG_SR_WN_WN9_BLUECHIP_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOLONGXIAOLONG_TTS is not set -# CONFIG_SR_WN_WN9_HIMIAOMIAO_TTS is not set -# CONFIG_SR_WN_WN9_MIAOMIAOTONGXUE_TTS is not set -# CONFIG_SR_WN_WN9_NIHAOXIAOXIN_TTS is not set -# CONFIG_SR_WN_WN9_XIAOMEITONGXUE_TTS is not set -# CONFIG_SR_WN_WN9_HILILI_TTS is not set -# CONFIG_SR_WN_WN9_HITELLY_TTS is not set -# CONFIG_SR_WN_WN9_XIAOBINXIAOBIN_TTS is not set -# CONFIG_SR_WN_WN9_HAIXIAOWU_TTS is not set -# CONFIG_SR_WN_WN9_XIAOYAXIAOYA_TTS2 is not set -# CONFIG_SR_WN_WN9_LINAIBAN_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOSUROU_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOYUTONGXUE_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOMINGTONGXUE_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOKANGTONGXUE_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOJIANXIAOJIAN_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOTEXIAOTE_TTS2 is not set -# CONFIG_SR_WN_WN9_NIHAOXIAOYI_TTS2 is not set -# CONFIG_SR_WN_WN9_NIHAOBAIYING_TTS2 is not set -# CONFIG_SR_WN_WN9_NIHAODONGDONG_TTS2 is not set -# CONFIG_SR_WN_WN9_HIWALLE_TTS2 is not set -# CONFIG_SR_WN_WN9_XIAOLUXIAOLU_TTS2 is not set -# CONFIG_SR_WN_WN9_NIHAOXIAOAN_TTS2 is not set -# end of Load Multiple Wake Words (WakeNet9) - -CONFIG_SR_MN_CN_NONE=y -# CONFIG_SR_MN_CN_MULTINET5_RECOGNITION_QUANT8 is not set -# CONFIG_SR_MN_CN_MULTINET6_QUANT is not set -# CONFIG_SR_MN_CN_MULTINET6_AC_QUANT is not set -# CONFIG_SR_MN_CN_MULTINET7_QUANT is not set -# CONFIG_SR_MN_CN_MULTINET7_AC_QUANT is not set -CONFIG_SR_MN_EN_NONE=y -# CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8 is not set -# CONFIG_SR_MN_EN_MULTINET6_QUANT is not set -# CONFIG_SR_MN_EN_MULTINET7_QUANT is not set -# end of ESP Speech Recognition - -# -# Compiler options -# -# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set -CONFIG_COMPILER_OPTIMIZATION_SIZE=y -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_COMPILER_OPTIMIZATION_NONE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set -CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y -CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y -CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set -CONFIG_COMPILER_HIDE_PATHS_MACROS=y -CONFIG_COMPILER_CXX_EXCEPTIONS=y -CONFIG_COMPILER_CXX_EXCEPTIONS_EMG_POOL_SIZE=1024 -# CONFIG_COMPILER_CXX_RTTI is not set -CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y -# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set -# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set -# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set -CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y -# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set -# CONFIG_COMPILER_DUMP_RTL_FILES is not set -CONFIG_COMPILER_RT_LIB_GCCLIB=y -CONFIG_COMPILER_RT_LIB_NAME="gcc" -CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y -# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set -# CONFIG_COMPILER_STATIC_ANALYZER is not set -# end of Compiler options - -# -# Component config -# - -# -# Application Level Tracing -# -# CONFIG_APPTRACE_DEST_JTAG is not set -CONFIG_APPTRACE_DEST_NONE=y -# CONFIG_APPTRACE_DEST_UART1 is not set -# CONFIG_APPTRACE_DEST_UART2 is not set -# CONFIG_APPTRACE_DEST_USB_CDC is not set -CONFIG_APPTRACE_DEST_UART_NONE=y -CONFIG_APPTRACE_UART_TASK_PRIO=1 -CONFIG_APPTRACE_LOCK_ENABLE=y -# end of Application Level Tracing - -# -# Bluetooth -# -# CONFIG_BT_ENABLED is not set - -# -# Common Options -# -# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set -# end of Common Options -# end of Bluetooth - -# -# Console Library -# -# CONFIG_CONSOLE_SORTED_HELP is not set -# end of Console Library - -# -# Driver Configurations -# - -# -# Legacy TWAI Driver Configurations -# -# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set -CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y -# end of Legacy TWAI Driver Configurations - -# -# Legacy ADC Driver Configuration -# -# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set - -# -# Legacy ADC Calibration Configuration -# -# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy ADC Calibration Configuration -# end of Legacy ADC Driver Configuration - -# -# Legacy MCPWM Driver Configurations -# -# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy MCPWM Driver Configurations - -# -# Legacy Timer Group Driver Configurations -# -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Timer Group Driver Configurations - -# -# Legacy RMT Driver Configurations -# -# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy RMT Driver Configurations - -# -# Legacy I2S Driver Configurations -# -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2S Driver Configurations - -# -# Legacy I2C Driver Configurations -# -# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2C Driver Configurations - -# -# Legacy PCNT Driver Configurations -# -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy PCNT Driver Configurations - -# -# Legacy SDM Driver Configurations -# -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy SDM Driver Configurations - -# -# Legacy Temperature Sensor Driver Configurations -# -# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Temperature Sensor Driver Configurations - -# -# Legacy Touch Sensor Driver Configurations -# -# CONFIG_TOUCH_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_TOUCH_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Touch Sensor Driver Configurations -# end of Driver Configurations - -# -# eFuse Bit Manager -# -# CONFIG_EFUSE_CUSTOM_TABLE is not set -# CONFIG_EFUSE_VIRTUAL is not set -CONFIG_EFUSE_MAX_BLK_LEN=256 -# end of eFuse Bit Manager - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set -CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set -# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set -# CONFIG_ESP_TLS_PSK_VERIFICATION is not set -# CONFIG_ESP_TLS_INSECURE is not set -# end of ESP-TLS - -# -# ADC and ADC Calibration -# -# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set -# CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 is not set -# CONFIG_ADC_ENABLE_DEBUG_LOG is not set -# end of ADC and ADC Calibration - -# -# Wireless Coexistence -# -CONFIG_ESP_COEX_ENABLED=y -# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set -# CONFIG_ESP_COEX_GPIO_DEBUG is not set -# end of Wireless Coexistence - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# ESP-Driver:GPIO Configurations -# -# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:GPIO Configurations - -# -# ESP-Driver:GPTimer Configurations -# -CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y -# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set -CONFIG_GPTIMER_OBJ_CACHE_SAFE=y -# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:GPTimer Configurations - -# -# ESP-Driver:I2C Configurations -# -# CONFIG_I2C_ISR_IRAM_SAFE is not set -# CONFIG_I2C_ENABLE_DEBUG_LOG is not set -# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set -CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y -# end of ESP-Driver:I2C Configurations - -# -# ESP-Driver:I2S Configurations -# -# CONFIG_I2S_ISR_IRAM_SAFE is not set -# CONFIG_I2S_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:I2S Configurations - -# -# ESP-Driver:LEDC Configurations -# -# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:LEDC Configurations - -# -# ESP-Driver:MCPWM Configurations -# -CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y -# CONFIG_MCPWM_ISR_CACHE_SAFE is not set -# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set -CONFIG_MCPWM_OBJ_CACHE_SAFE=y -# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:MCPWM Configurations - -# -# ESP-Driver:PCNT Configurations -# -# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_PCNT_ISR_IRAM_SAFE is not set -# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:PCNT Configurations - -# -# ESP-Driver:RMT Configurations -# -CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y -CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y -CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y -# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set -# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set -# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set -CONFIG_RMT_OBJ_CACHE_SAFE=y -# CONFIG_RMT_ENABLE_DEBUG_LOG is not set -# CONFIG_RMT_ISR_IRAM_SAFE is not set -# end of ESP-Driver:RMT Configurations - -# -# ESP-Driver:Sigma Delta Modulator Configurations -# -# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_SDM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Sigma Delta Modulator Configurations - -# -# ESP-Driver:SPI Configurations -# -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_SPI_SLAVE_IN_IRAM is not set -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of ESP-Driver:SPI Configurations - -# -# ESP-Driver:Touch Sensor Configurations -# -# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set -# CONFIG_TOUCH_ISR_IRAM_SAFE is not set -# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set -# CONFIG_TOUCH_SKIP_FSM_CHECK is not set -# end of ESP-Driver:Touch Sensor Configurations - -# -# ESP-Driver:Temperature Sensor Configurations -# -# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Temperature Sensor Configurations - -# -# ESP-Driver:TWAI Configurations -# -# CONFIG_TWAI_ISR_IN_IRAM is not set -# CONFIG_TWAI_ISR_CACHE_SAFE is not set -# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:TWAI Configurations - -# -# ESP-Driver:UART Configurations -# -CONFIG_UART_ISR_IN_IRAM=y -# end of ESP-Driver:UART Configurations - -# -# ESP-Driver:UHCI Configurations -# -# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set -# CONFIG_UHCI_ISR_CACHE_SAFE is not set -# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:UHCI Configurations - -# -# ESP-Driver:USB Serial/JTAG Configuration -# -CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y -# end of ESP-Driver:USB Serial/JTAG Configuration - -# -# Ethernet -# -CONFIG_ETH_ENABLED=y -CONFIG_ETH_USE_SPI_ETHERNET=y -# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set -# CONFIG_ETH_SPI_ETHERNET_W5500 is not set -# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set -# CONFIG_ETH_USE_OPENETH is not set -# CONFIG_ETH_TRANSMIT_MUTEX is not set -# end of Ethernet - -# -# Event Loop Library -# -# CONFIG_ESP_EVENT_LOOP_PROFILING is not set -CONFIG_ESP_EVENT_POST_FROM_ISR=y -CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y -# end of Event Loop Library - -# -# GDB Stub -# -CONFIG_ESP_GDBSTUB_ENABLED=y -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set -CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y -CONFIG_ESP_GDBSTUB_MAX_TASKS=32 -# end of GDB Stub - -# -# ESP HID -# -CONFIG_ESPHID_TASK_SIZE_BT=2048 -CONFIG_ESPHID_TASK_SIZE_BLE=4096 -# end of ESP HID - -# -# ESP HTTP client -# -CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y -# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set -# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set -# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set -CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=2048 -CONFIG_HTTPD_MAX_URI_LEN=2048 -CONFIG_HTTPD_ERR_RESP_NO_DELAY=y -CONFIG_HTTPD_PURGE_BUF_LEN=32 -# CONFIG_HTTPD_LOG_PURGE_DATA is not set -# CONFIG_HTTPD_WS_SUPPORT is not set -# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set -CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 -# end of HTTP Server - -# -# ESP HTTPS OTA -# -# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set -# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set -CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTPS OTA - -# -# ESP HTTPS server -# -# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set -CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 -# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set -# end of ESP HTTPS server - -# -# Hardware Settings -# - -# -# Chip revision -# -CONFIG_ESP32S3_REV_MIN_0=y -# CONFIG_ESP32S3_REV_MIN_1 is not set -# CONFIG_ESP32S3_REV_MIN_2 is not set -CONFIG_ESP32S3_REV_MIN_FULL=0 -CONFIG_ESP_REV_MIN_FULL=0 - -# -# Maximum Supported ESP32-S3 Revision (Rev v0.99) -# -CONFIG_ESP32S3_REV_MAX_FULL=99 -CONFIG_ESP_REV_MAX_FULL=99 -CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 -CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199 - -# -# Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.99) -# -# end of Chip revision - -# -# MAC Config -# -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y -CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_TWO is not set -CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set -# end of MAC Config - -# -# Sleep Config -# -CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y -CONFIG_ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND=y -CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU=y -CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y -CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y -CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set -# CONFIG_ESP_SLEEP_DEBUG is not set -CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# end of Sleep Config - -# -# RTC Clock Config -# -CONFIG_RTC_CLK_SRC_INT_RC=y -# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_RTC_CLK_SRC_INT_8MD256 is not set -CONFIG_RTC_CLK_CAL_CYCLES=1024 -# end of RTC Clock Config - -# -# Peripheral Control -# -CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y -CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y -# end of Peripheral Control - -# -# GDMA Configurations -# -CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y -CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y -CONFIG_GDMA_OBJ_DRAM_SAFE=y -# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set -# CONFIG_GDMA_ISR_IRAM_SAFE is not set -# end of GDMA Configurations - -# -# Main XTAL Config -# -CONFIG_XTAL_FREQ_40=y -CONFIG_XTAL_FREQ=40 -# end of Main XTAL Config - -# -# Power Supplier -# - -# -# Brownout Detector -# -CONFIG_ESP_BROWNOUT_DET=y -CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set -CONFIG_ESP_BROWNOUT_DET_LVL=7 -CONFIG_ESP_BROWNOUT_USE_INTR=y -# end of Brownout Detector -# end of Power Supplier - -CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y -CONFIG_ESP_INTR_IN_IRAM=y -# end of Hardware Settings - -# -# ESP-Driver:LCD Controller Configurations -# -# CONFIG_LCD_ENABLE_DEBUG_LOG is not set -# CONFIG_LCD_RGB_ISR_IRAM_SAFE is not set -# CONFIG_LCD_RGB_RESTART_IN_VSYNC is not set -# end of ESP-Driver:LCD Controller Configurations - -# -# ESP-MM: Memory Management Configurations -# -# CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set -# end of ESP-MM: Memory Management Configurations - -# -# ESP NETIF Adapter -# -CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 -# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set -CONFIG_ESP_NETIF_TCPIP_LWIP=y -# CONFIG_ESP_NETIF_LOOPBACK is not set -CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y -CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y -# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set -# CONFIG_ESP_NETIF_L2_TAP is not set -# CONFIG_ESP_NETIF_BRIDGE_EN is not set -# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set -# end of ESP NETIF Adapter - -# -# Partition API Configuration -# -# end of Partition API Configuration - -# -# PHY -# -CONFIG_ESP_PHY_ENABLED=y -CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP_PHY_MAX_TX_POWER=20 -# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set -CONFIG_ESP_PHY_ENABLE_USB=y -# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set -CONFIG_ESP_PHY_RF_CAL_PARTIAL=y -# CONFIG_ESP_PHY_RF_CAL_NONE is not set -# CONFIG_ESP_PHY_RF_CAL_FULL is not set -CONFIG_ESP_PHY_CALIBRATION_MODE=0 -# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set -# CONFIG_ESP_PHY_RECORD_USED_TIME is not set -CONFIG_ESP_PHY_IRAM_OPT=y -# end of PHY - -# -# Power Management -# -CONFIG_PM_SLEEP_FUNC_IN_IRAM=y -# CONFIG_PM_ENABLE is not set -CONFIG_PM_SLP_IRAM_OPT=y -CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y -CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y -# end of Power Management - -# -# ESP PSRAM -# -CONFIG_SPIRAM=y - -# -# SPI RAM config -# -# CONFIG_SPIRAM_MODE_QUAD is not set -CONFIG_SPIRAM_MODE_OCT=y -CONFIG_SPIRAM_TYPE_AUTO=y -# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set -CONFIG_SPIRAM_CLK_IO=30 -CONFIG_SPIRAM_CS_IO=26 -# CONFIG_SPIRAM_XIP_FROM_PSRAM is not set -# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set -# CONFIG_SPIRAM_RODATA is not set -CONFIG_SPIRAM_SPEED_80M=y -# CONFIG_SPIRAM_SPEED_40M is not set -CONFIG_SPIRAM_SPEED=80 -# CONFIG_SPIRAM_ECC_ENABLE is not set -CONFIG_SPIRAM_BOOT_HW_INIT=y -CONFIG_SPIRAM_BOOT_INIT=y -CONFIG_SPIRAM_PRE_CONFIGURE_MEMORY_PROTECTION=y -# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set -# CONFIG_SPIRAM_USE_MEMMAP is not set -# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set -CONFIG_SPIRAM_USE_MALLOC=y -# CONFIG_SPIRAM_MEMTEST is not set -CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=512 -# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set -CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=65536 -# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set -# CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set -# end of SPI RAM config -# end of ESP PSRAM - -# -# ESP Ringbuf -# -# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set -# end of ESP Ringbuf - -# -# ESP-ROM -# -CONFIG_ESP_ROM_PRINT_IN_IRAM=y -# end of ESP-ROM - -# -# ESP Security Specific -# -# end of ESP Security Specific - -# -# ESP System Settings -# -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240 - -# -# Cache config -# -# CONFIG_ESP32S3_INSTRUCTION_CACHE_16KB is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB=y -CONFIG_ESP32S3_INSTRUCTION_CACHE_SIZE=0x8000 -# CONFIG_ESP32S3_INSTRUCTION_CACHE_4WAYS is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_8WAYS=y -CONFIG_ESP32S3_ICACHE_ASSOCIATED_WAYS=8 -CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_32B=y -CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_SIZE=32 -# CONFIG_ESP32S3_DATA_CACHE_16KB is not set -# CONFIG_ESP32S3_DATA_CACHE_32KB is not set -CONFIG_ESP32S3_DATA_CACHE_64KB=y -CONFIG_ESP32S3_DATA_CACHE_SIZE=0x10000 -# CONFIG_ESP32S3_DATA_CACHE_4WAYS is not set -CONFIG_ESP32S3_DATA_CACHE_8WAYS=y -CONFIG_ESP32S3_DCACHE_ASSOCIATED_WAYS=8 -# CONFIG_ESP32S3_DATA_CACHE_LINE_32B is not set -CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y -CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=64 -# end of Cache config - -# -# Memory -# -# CONFIG_ESP32S3_RTCDATA_IN_FAST_MEM is not set -# CONFIG_ESP32S3_USE_FIXED_STATIC_RAM_SIZE is not set -# end of Memory - -# -# Trace memory -# -# CONFIG_ESP32S3_TRAX is not set -CONFIG_ESP32S3_TRACEMEM_RESERVE_DRAM=0x0 -# end of Trace memory - -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y -# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 -CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y -CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y - -# -# Memory protection -# -CONFIG_ESP_SYSTEM_MEMPROT_FEATURE=y -CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK=y -# end of Memory protection - -CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096 -CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192 -CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y -# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set -# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 -CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -# CONFIG_ESP_CONSOLE_USB_CDC is not set -# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set -CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y -CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 -CONFIG_ESP_INT_WDT=y -CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 -CONFIG_ESP_INT_WDT_CHECK_CPU1=y -CONFIG_ESP_TASK_WDT_EN=y -CONFIG_ESP_TASK_WDT_INIT=y -# CONFIG_ESP_TASK_WDT_PANIC is not set -CONFIG_ESP_TASK_WDT_TIMEOUT_S=10 -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP_PANIC_HANDLER_IRAM is not set -# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set -CONFIG_ESP_DEBUG_OCDAWARE=y -CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y -CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y -# end of ESP System Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_TASK_STACK_SIZE=1280 -CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y -CONFIG_ESP_IPC_ISR_ENABLE=y -# end of IPC (Inter-Processor Call) - -# -# ESP Timer (High Resolution Timer) -# -CONFIG_ESP_TIMER_IN_IRAM=y -# CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y -CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y -CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 -# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set -CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 -CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y -CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y -# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set -CONFIG_ESP_TIMER_IMPL_SYSTIMER=y -# end of ESP Timer (High Resolution Timer) - -# -# Wi-Fi -# -CONFIG_ESP_WIFI_ENABLED=y -CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=6 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=8 -# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -# CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER=y -CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=1 -CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 -# CONFIG_ESP_WIFI_CSI_ENABLED is not set -CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP_WIFI_TX_BA_WIN=6 -CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP_WIFI_RX_BA_WIN=6 -CONFIG_ESP_WIFI_NVS_ENABLED=y -CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 -# CONFIG_ESP_WIFI_IRAM_OPT is not set -# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set -# CONFIG_ESP_WIFI_RX_IRAM_OPT is not set -CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP_WIFI_ENABLE_SAE_PK=y -CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y -CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y -# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 -# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set -CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 -CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 -# CONFIG_ESP_WIFI_FTM_ENABLE is not set -CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y -# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set -CONFIG_ESP_WIFI_GMAC_SUPPORT=y -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y -# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set -CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 -CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y -# CONFIG_ESP_WIFI_WAPI_PSK is not set -# CONFIG_ESP_WIFI_SUITE_B_192 is not set -# CONFIG_ESP_WIFI_11KV_SUPPORT is not set -# CONFIG_ESP_WIFI_MBO_SUPPORT is not set -# CONFIG_ESP_WIFI_DPP_SUPPORT is not set -# CONFIG_ESP_WIFI_11R_SUPPORT is not set -# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set - -# -# WPS Configuration Options -# -# CONFIG_ESP_WIFI_WPS_STRICT is not set -# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set -# end of WPS Configuration Options - -# CONFIG_ESP_WIFI_DEBUG_PRINT is not set -# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set -# CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT is not set -# end of Wi-Fi - -# -# Core dump -# -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set -# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y -# end of Core dump - -# -# FAT Filesystem support -# -CONFIG_FATFS_VOLUME_COUNT=2 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set -# CONFIG_FATFS_SECTOR_512 is not set -CONFIG_FATFS_SECTOR_4096=y -# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set -CONFIG_FATFS_CODEPAGE_437=y -# CONFIG_FATFS_CODEPAGE_720 is not set -# CONFIG_FATFS_CODEPAGE_737 is not set -# CONFIG_FATFS_CODEPAGE_771 is not set -# CONFIG_FATFS_CODEPAGE_775 is not set -# CONFIG_FATFS_CODEPAGE_850 is not set -# CONFIG_FATFS_CODEPAGE_852 is not set -# CONFIG_FATFS_CODEPAGE_855 is not set -# CONFIG_FATFS_CODEPAGE_857 is not set -# CONFIG_FATFS_CODEPAGE_860 is not set -# CONFIG_FATFS_CODEPAGE_861 is not set -# CONFIG_FATFS_CODEPAGE_862 is not set -# CONFIG_FATFS_CODEPAGE_863 is not set -# CONFIG_FATFS_CODEPAGE_864 is not set -# CONFIG_FATFS_CODEPAGE_865 is not set -# CONFIG_FATFS_CODEPAGE_866 is not set -# CONFIG_FATFS_CODEPAGE_869 is not set -# CONFIG_FATFS_CODEPAGE_932 is not set -# CONFIG_FATFS_CODEPAGE_936 is not set -# CONFIG_FATFS_CODEPAGE_949 is not set -# CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_FS_LOCK=0 -CONFIG_FATFS_TIMEOUT_MS=10000 -CONFIG_FATFS_PER_FILE_CACHE=y -CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y -# CONFIG_FATFS_USE_FASTSEEK is not set -CONFIG_FATFS_USE_STRFUNC_NONE=y -# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set -# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set -CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 -# CONFIG_FATFS_IMMEDIATE_FSYNC is not set -# CONFIG_FATFS_USE_LABEL is not set -CONFIG_FATFS_LINK_LOCK=y -# CONFIG_FATFS_USE_DYN_BUFFERS is not set - -# -# File system free space calculation behavior -# -CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 -CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 -# end of File system free space calculation behavior -# end of FAT Filesystem support - -# -# FreeRTOS -# - -# -# Kernel -# -# CONFIG_FREERTOS_SMP is not set -# CONFIG_FREERTOS_UNICORE is not set -CONFIG_FREERTOS_HZ=100 -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set -CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y -CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 -CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 -# CONFIG_FREERTOS_USE_IDLE_HOOK is not set -# CONFIG_FREERTOS_USE_TICK_HOOK is not set -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set -CONFIG_FREERTOS_USE_TIMERS=y -CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" -# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set -# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set -CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y -CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 -CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 -CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 -CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 -CONFIG_FREERTOS_USE_TRACE_FACILITY=y -CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y -# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set -# CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID is not set -CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y -CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U32=y -# CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64 is not set -# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set -# end of Kernel - -# -# Port -# -# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set -CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y -# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set -# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set -CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y -CONFIG_FREERTOS_ISR_STACKSIZE=1536 -CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y -# CONFIG_FREERTOS_FPU_IN_ISR is not set -CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y -CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y -# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set -CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y -CONFIG_FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER=y -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -# end of Port - -# -# Extra -# -CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM=y -# end of Extra - -CONFIG_FREERTOS_PORT=y -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y -CONFIG_FREERTOS_DEBUG_OCDAWARE=y -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y -CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y -CONFIG_FREERTOS_NUMBER_OF_CORES=2 -CONFIG_FREERTOS_IN_IRAM=y -# end of FreeRTOS - -# -# Hardware Abstraction Layer (HAL) and Low Level (LL) -# -CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y -# CONFIG_HAL_ASSERTION_DISABLE is not set -# CONFIG_HAL_ASSERTION_SILENT is not set -# CONFIG_HAL_ASSERTION_ENABLE is not set -CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 -CONFIG_HAL_WDT_USE_ROM_IMPL=y -# end of Hardware Abstraction Layer (HAL) and Low Level (LL) - -# -# Heap memory debugging -# -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -CONFIG_HEAP_TRACING_OFF=y -# CONFIG_HEAP_TRACING_STANDALONE is not set -# CONFIG_HEAP_TRACING_TOHOST is not set -# CONFIG_HEAP_USE_HOOKS is not set -# CONFIG_HEAP_TASK_TRACKING is not set -# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set -# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set -# end of Heap memory debugging - -# -# Log -# -CONFIG_LOG_VERSION_1=y -# CONFIG_LOG_VERSION_2 is not set -CONFIG_LOG_VERSION=1 - -# -# Log Level -# -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set -CONFIG_LOG_DEFAULT_LEVEL_INFO=y -# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 - -# -# Level Settings -# -# CONFIG_LOG_MASTER_LEVEL is not set -CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y -# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set -# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y -# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set -CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 -# end of Level Settings -# end of Log Level - -# -# Format -# -# CONFIG_LOG_COLORS is not set -CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y -# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Format - -# -# Settings -# -CONFIG_LOG_MODE_TEXT_EN=y -CONFIG_LOG_MODE_TEXT=y -# end of Settings - -CONFIG_LOG_IN_IRAM=y -# end of Log - -# -# LWIP -# -CONFIG_LWIP_ENABLE=y -CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -CONFIG_LWIP_TCPIP_TASK_PRIO=18 -# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set -# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set -CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y -# CONFIG_LWIP_L2_TO_L3_COPY is not set -# CONFIG_LWIP_IRAM_OPTIMIZATION is not set -# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set -CONFIG_LWIP_TIMERS_ONDEMAND=y -CONFIG_LWIP_ND6=y -# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set -CONFIG_LWIP_MAX_SOCKETS=10 -# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set -# CONFIG_LWIP_SO_LINGER is not set -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_REUSE_RXTOALL=y -# CONFIG_LWIP_SO_RCVBUF is not set -# CONFIG_LWIP_NETBUF_RECVINFO is not set -CONFIG_LWIP_IP_DEFAULT_TTL=64 -CONFIG_LWIP_IP4_FRAG=y -CONFIG_LWIP_IP6_FRAG=y -# CONFIG_LWIP_IP4_REASSEMBLY is not set -# CONFIG_LWIP_IP6_REASSEMBLY is not set -CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 -# CONFIG_LWIP_IP_FORWARD is not set -# CONFIG_LWIP_STATS is not set -CONFIG_LWIP_ESP_GRATUITOUS_ARP=y -CONFIG_LWIP_GARP_TMR_INTERVAL=60 -CONFIG_LWIP_ESP_MLDV6_REPORT=y -CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y -# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set -# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set -# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set -CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y -# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=68 -CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 -CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 - -# -# DHCP server -# -CONFIG_LWIP_DHCPS=y -CONFIG_LWIP_DHCPS_LEASE_UNIT=60 -CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 -CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y -CONFIG_LWIP_DHCPS_ADD_DNS=y -# end of DHCP server - -# CONFIG_LWIP_AUTOIP is not set -CONFIG_LWIP_IPV4=y -CONFIG_LWIP_IPV6=y -# CONFIG_LWIP_IPV6_AUTOCONFIG is not set -CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 -# CONFIG_LWIP_IPV6_FORWARD is not set -# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set -CONFIG_LWIP_NETIF_LOOPBACK=y -CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 - -# -# TCP -# -CONFIG_LWIP_MAX_ACTIVE_TCP=16 -CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y -CONFIG_LWIP_TCP_MAXRTX=12 -CONFIG_LWIP_TCP_SYNMAXRTX=12 -CONFIG_LWIP_TCP_MSS=1440 -CONFIG_LWIP_TCP_TMR_INTERVAL=250 -CONFIG_LWIP_TCP_MSL=60000 -CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 -CONFIG_LWIP_TCP_WND_DEFAULT=5760 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 -CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 -CONFIG_LWIP_TCP_QUEUE_OOSEQ=y -CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 -CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 -# CONFIG_LWIP_TCP_SACK_OUT is not set -CONFIG_LWIP_TCP_OVERSIZE_MSS=y -# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 -# end of TCP - -# -# UDP -# -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 -# end of UDP - -# -# Checksums -# -# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set -# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set -CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y -# end of Checksums - -CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 -CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 -CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 -CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 -# CONFIG_LWIP_PPP_SUPPORT is not set -# CONFIG_LWIP_SLIP_SUPPORT is not set - -# -# ICMP -# -CONFIG_LWIP_ICMP=y -# CONFIG_LWIP_MULTICAST_PING is not set -# CONFIG_LWIP_BROADCAST_PING is not set -# end of ICMP - -# -# LWIP RAW API -# -CONFIG_LWIP_MAX_RAW_PCBS=16 -# end of LWIP RAW API - -# -# SNTP -# -CONFIG_LWIP_SNTP_MAX_SERVERS=1 -# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set -CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 -CONFIG_LWIP_SNTP_STARTUP_DELAY=y -CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 -# end of SNTP - -# -# DNS -# -CONFIG_LWIP_DNS_MAX_HOST_IP=1 -CONFIG_LWIP_DNS_MAX_SERVERS=3 -# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set -# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set -# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set -# end of DNS - -CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 -CONFIG_LWIP_ESP_LWIP_ASSERT=y - -# -# Hooks -# -# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set -CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y -# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y -# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set -CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y -# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set -# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set -CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y -# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set -# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set -CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set -# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set -CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y -# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set -# end of Hooks - -# CONFIG_LWIP_DEBUG is not set -# end of LWIP - -# -# mbedTLS -# -# CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC is not set -CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y -# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set -# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set -CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y -CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 -CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 -CONFIG_MBEDTLS_DYNAMIC_BUFFER=y -# CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA is not set -# CONFIG_MBEDTLS_DEBUG is not set - -# -# mbedTLS v3.x related -# -# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set -# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set -# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set -# CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE is not set -CONFIG_MBEDTLS_PKCS7_C=y -# end of mbedTLS v3.x related - -# -# Certificate Bundle -# -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set -# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 -# end of Certificate Bundle - -# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set -CONFIG_MBEDTLS_CMAC_C=y -CONFIG_MBEDTLS_HARDWARE_AES=y -CONFIG_MBEDTLS_AES_USE_INTERRUPT=y -CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 -CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y -CONFIG_MBEDTLS_HARDWARE_MPI=y -# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set -CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y -CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0 -CONFIG_MBEDTLS_HARDWARE_SHA=y -CONFIG_MBEDTLS_ROM_MD5=y -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y -CONFIG_MBEDTLS_SHA1_C=y -CONFIG_MBEDTLS_SHA512_C=y -# CONFIG_MBEDTLS_SHA3_C is not set -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -# CONFIG_MBEDTLS_SSL_RENEGOTIATION is not set -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -# end of Certificates - -CONFIG_MBEDTLS_ECP_C=y -CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y -CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y -# CONFIG_MBEDTLS_DHM_C is not set -CONFIG_MBEDTLS_ECDH_C=y -CONFIG_MBEDTLS_ECDSA_C=y -# CONFIG_MBEDTLS_ECJPAKE_C is not set -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y -CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set -# CONFIG_MBEDTLS_POLY1305_C is not set -# CONFIG_MBEDTLS_CHACHA20_C is not set -# CONFIG_MBEDTLS_HKDF_C is not set -# CONFIG_MBEDTLS_THREADING_C is not set -CONFIG_MBEDTLS_ERROR_STRINGS=y -CONFIG_MBEDTLS_FS_IO=y -# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set -# end of mbedTLS - -# -# ESP-MQTT Configurations -# -CONFIG_MQTT_PROTOCOL_311=y -# CONFIG_MQTT_PROTOCOL_5 is not set -CONFIG_MQTT_TRANSPORT_SSL=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y -# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set -# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set -# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set -# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set -# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -# CONFIG_MQTT_CUSTOM_OUTBOX is not set -# end of ESP-MQTT Configurations - -# -# LibC -# -CONFIG_LIBC_NEWLIB=y -CONFIG_LIBC_MISC_IN_IRAM=y -CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y -CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set -# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set -# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set -CONFIG_LIBC_STDIN_LINE_ENDING_CR=y -CONFIG_LIBC_NEWLIB_NANO_FORMAT=y -CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y -# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set -# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set -# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set -# end of LibC - -CONFIG_STDATOMIC_S32C1I_SPIRAM_WORKAROUND=y - -# -# NVS -# -# CONFIG_NVS_ENCRYPTION is not set -# CONFIG_NVS_ASSERT_ERROR_CHECK is not set -# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set -# CONFIG_NVS_ALLOCATE_CACHE_IN_SPIRAM is not set -# end of NVS - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set - -# -# OpenThread Spinel -# -# CONFIG_OPENTHREAD_SPINEL_ONLY is not set -# end of OpenThread Spinel -# end of OpenThread - -# -# Protocomm -# -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y -# end of Protocomm - -# -# PThreads -# -CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_PTHREAD_STACK_MIN=768 -CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y -# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set -# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set -CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" -# end of PThreads - -# -# MMU Config -# -CONFIG_MMU_PAGE_SIZE_64KB=y -CONFIG_MMU_PAGE_MODE="64KB" -CONFIG_MMU_PAGE_SIZE=0x10000 -# end of MMU Config - -# -# Main Flash configuration -# - -# -# SPI Flash behavior when brownout -# -CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y -CONFIG_SPI_FLASH_BROWNOUT_RESET=y -# end of SPI Flash behavior when brownout - -# -# Optional and Experimental Features (READ DOCS FIRST) -# - -# -# Features here require specific hardware (READ DOCS FIRST!) -# -# CONFIG_SPI_FLASH_HPM_ENA is not set -CONFIG_SPI_FLASH_HPM_AUTO=y -# CONFIG_SPI_FLASH_HPM_DIS is not set -CONFIG_SPI_FLASH_HPM_ON=y -CONFIG_SPI_FLASH_HPM_DC_AUTO=y -# CONFIG_SPI_FLASH_HPM_DC_DISABLE is not set -# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set -CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 -# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set -# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set -CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y -# end of Optional and Experimental Features (READ DOCS FIRST) -# end of Main Flash configuration - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -# CONFIG_SPI_FLASH_ROM_IMPL is not set -CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set -# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set -CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y -CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 -CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 -CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 -# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set -# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set -# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set - -# -# Auto-detect flash chips -# -CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_GD_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_BOYA_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_TH_SUPPORTED=y -CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_OPI_CHIP=y -# end of Auto-detect flash chips - -CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y -# end of SPI Flash driver - -# -# SPIFFS Configuration -# -CONFIG_SPIFFS_MAX_PARTITIONS=3 - -# -# SPIFFS Cache Configuration -# -CONFIG_SPIFFS_CACHE=y -CONFIG_SPIFFS_CACHE_WR=y -# CONFIG_SPIFFS_CACHE_STATS is not set -# end of SPIFFS Cache Configuration - -CONFIG_SPIFFS_PAGE_CHECK=y -CONFIG_SPIFFS_GC_MAX_RUNS=10 -# CONFIG_SPIFFS_GC_STATS is not set -CONFIG_SPIFFS_PAGE_SIZE=256 -CONFIG_SPIFFS_OBJ_NAME_LEN=32 -# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set -CONFIG_SPIFFS_USE_MAGIC=y -CONFIG_SPIFFS_USE_MAGIC_LENGTH=y -CONFIG_SPIFFS_META_LENGTH=4 -CONFIG_SPIFFS_USE_MTIME=y - -# -# Debug Configuration -# -# CONFIG_SPIFFS_DBG is not set -# CONFIG_SPIFFS_API_DBG is not set -# CONFIG_SPIFFS_GC_DBG is not set -# CONFIG_SPIFFS_CACHE_DBG is not set -# CONFIG_SPIFFS_CHECK_DBG is not set -# CONFIG_SPIFFS_TEST_VISUALISATION is not set -# end of Debug Configuration -# end of SPIFFS Configuration - -# -# TCP Transport -# - -# -# Websocket -# -CONFIG_WS_TRANSPORT=y -CONFIG_WS_BUFFER_SIZE=1024 -# CONFIG_WS_DYNAMIC_BUFFER is not set -# end of Websocket -# end of TCP Transport - -# -# Ultra Low Power (ULP) Co-processor -# -# CONFIG_ULP_COPROC_ENABLED is not set - -# -# ULP Debugging Options -# -# end of ULP Debugging Options -# end of Ultra Low Power (ULP) Co-processor - -# -# Unity unit testing library -# -CONFIG_UNITY_ENABLE_FLOAT=y -CONFIG_UNITY_ENABLE_DOUBLE=y -# CONFIG_UNITY_ENABLE_64BIT is not set -# CONFIG_UNITY_ENABLE_COLOR is not set -CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y -# CONFIG_UNITY_ENABLE_FIXTURE is not set -# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set -# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set -# end of Unity unit testing library - -# -# USB-OTG -# -CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE=256 -CONFIG_USB_HOST_HW_BUFFER_BIAS_BALANCED=y -# CONFIG_USB_HOST_HW_BUFFER_BIAS_IN is not set -# CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT is not set - -# -# Hub Driver Configuration -# - -# -# Root Port configuration -# -CONFIG_USB_HOST_DEBOUNCE_DELAY_MS=250 -CONFIG_USB_HOST_RESET_HOLD_MS=30 -CONFIG_USB_HOST_RESET_RECOVERY_MS=30 -CONFIG_USB_HOST_SET_ADDR_RECOVERY_MS=10 -# end of Root Port configuration - -# CONFIG_USB_HOST_HUBS_SUPPORTED is not set -# end of Hub Driver Configuration - -# CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK is not set -CONFIG_USB_OTG_SUPPORTED=y -# end of USB-OTG - -# -# Virtual file system -# -CONFIG_VFS_SUPPORT_IO=y -CONFIG_VFS_SUPPORT_DIR=y -CONFIG_VFS_SUPPORT_SELECT=y -CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_VFS_SELECT_IN_RAM=y -CONFIG_VFS_SUPPORT_TERMIOS=y -CONFIG_VFS_MAX_COUNT=8 - -# -# Host File System I/O (Semihosting) -# -CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# end of Host File System I/O (Semihosting) - -CONFIG_VFS_INITIALIZE_DEV_NULL=y -# end of Virtual file system - -# -# Wear Levelling -# -# CONFIG_WL_SECTOR_SIZE_512 is not set -CONFIG_WL_SECTOR_SIZE_4096=y -CONFIG_WL_SECTOR_SIZE=4096 -# end of Wear Levelling - -# -# Wi-Fi Provisioning Manager -# -CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 -CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 -CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y -# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set -# end of Wi-Fi Provisioning Manager - -# -# Animation Player Configuration -# -CONFIG_ANIM_PLAYER_DEFAULT_FPS=30 -# end of Animation Player Configuration - -# -# ADC Battery Estimation -# -CONFIG_OCV_SOC_MODEL_1=y -# CONFIG_OCV_SOC_MODEL_2 is not set -CONFIG_ADC_FILTER_WINDOW_SIZE=10 -CONFIG_BATTERY_CAPACITY_LPF_COEFFICIENT=2 -CONFIG_BATTERY_STATE_SOFTWARE_ESTIMATION=y - -# -# Software Estimation Configuration -# -CONFIG_SOFTWARE_ESTIMATION_SAMPLE_COUNT=10 -CONFIG_SOFTWARE_ESTIMATION_SAMPLE_INTERVAL=20000 -# end of Software Estimation Configuration -# end of ADC Battery Estimation - -# -# ADC Mic -# -CONFIG_ADC_MIC_APPLY_GAIN=3 -CONFIG_ADC_MIC_OFFSET=16380 -CONFIG_ADC_MIC_TASK_PRIORITY=1 -CONFIG_ADC_MIC_TASK_STACK_SIZE=3072 -CONFIG_ADC_MIC_TASK_CORE=-1 -# end of ADC Mic - -# -# IoT Button -# -CONFIG_BUTTON_PERIOD_TIME_MS=5 -CONFIG_BUTTON_DEBOUNCE_TICKS=2 -CONFIG_BUTTON_SHORT_PRESS_TIME_MS=180 -CONFIG_BUTTON_LONG_PRESS_TIME_MS=1500 -CONFIG_BUTTON_LONG_PRESS_HOLD_SERIAL_TIME_MS=20 -CONFIG_ADC_BUTTON_MAX_CHANNEL=3 -CONFIG_ADC_BUTTON_MAX_BUTTON_PER_CHANNEL=8 -CONFIG_ADC_BUTTON_SAMPLE_TIMES=1 -# end of IoT Button - -# -# CMake Utilities -# -# CONFIG_CU_RELINKER_ENABLE is not set -# CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set -CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y -# CONFIG_CU_DIAGNOSTICS_COLOR_AUTO is not set -# CONFIG_CU_GCC_LTO_ENABLE is not set -# CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set -# end of CMake Utilities - -# -# DSP Library -# -CONFIG_DSP_OPTIMIZATIONS_SUPPORTED=y -# CONFIG_DSP_ANSI is not set -CONFIG_DSP_OPTIMIZED=y -CONFIG_DSP_OPTIMIZATION=1 -# CONFIG_DSP_MAX_FFT_SIZE_512 is not set -# CONFIG_DSP_MAX_FFT_SIZE_1024 is not set -# CONFIG_DSP_MAX_FFT_SIZE_2048 is not set -CONFIG_DSP_MAX_FFT_SIZE_4096=y -# CONFIG_DSP_MAX_FFT_SIZE_8192 is not set -# CONFIG_DSP_MAX_FFT_SIZE_16384 is not set -# CONFIG_DSP_MAX_FFT_SIZE_32768 is not set -CONFIG_DSP_MAX_FFT_SIZE=4096 -# end of DSP Library - -# -# Camera configuration -# -CONFIG_OV7670_SUPPORT=y -CONFIG_OV7725_SUPPORT=y -CONFIG_NT99141_SUPPORT=y -CONFIG_OV2640_SUPPORT=y -CONFIG_OV3660_SUPPORT=y -CONFIG_OV5640_SUPPORT=y -CONFIG_GC2145_SUPPORT=y -CONFIG_GC032A_SUPPORT=y -CONFIG_GC0308_SUPPORT=y -CONFIG_BF3005_SUPPORT=y -CONFIG_BF20A6_SUPPORT=y -# CONFIG_SC101IOT_SUPPORT is not set -CONFIG_SC030IOT_SUPPORT=y -# CONFIG_SC031GS_SUPPORT is not set -CONFIG_HM1055_SUPPORT=y -CONFIG_HM0360_SUPPORT=y -CONFIG_MEGA_CCM_SUPPORT=y -# CONFIG_SCCB_HARDWARE_I2C_DRIVER_LEGACY is not set -CONFIG_SCCB_HARDWARE_I2C_DRIVER_NEW=y -# CONFIG_SCCB_HARDWARE_I2C_PORT0 is not set -CONFIG_SCCB_HARDWARE_I2C_PORT1=y -CONFIG_SCCB_CLK_FREQ=100000 -# CONFIG_GC_SENSOR_WINDOWING_MODE is not set -CONFIG_GC_SENSOR_SUBSAMPLE_MODE=y -CONFIG_CAMERA_TASK_STACK_SIZE=4096 -CONFIG_CAMERA_CORE0=y -# CONFIG_CAMERA_CORE1 is not set -# CONFIG_CAMERA_NO_AFFINITY is not set -CONFIG_CAMERA_DMA_BUFFER_SIZE_MAX=32768 -# CONFIG_CAMERA_PSRAM_DMA is not set -CONFIG_CAMERA_JPEG_MODE_FRAME_SIZE_AUTO=y -# CONFIG_CAMERA_JPEG_MODE_FRAME_SIZE_CUSTOM is not set -# CONFIG_CAMERA_CONVERTER_ENABLED is not set -# CONFIG_LCD_CAM_ISR_IRAM_SAFE is not set -# end of Camera configuration - -# -# Audio Codec Device Configuration -# -# CONFIG_CODEC_I2C_BACKWARD_COMPATIBLE is not set -CONFIG_CODEC_ES8311_SUPPORT=y -CONFIG_CODEC_ES7210_SUPPORT=y -CONFIG_CODEC_ES7243_SUPPORT=y -CONFIG_CODEC_ES7243E_SUPPORT=y -CONFIG_CODEC_ES8156_SUPPORT=y -CONFIG_CODEC_AW88298_SUPPORT=y -CONFIG_CODEC_ES8389_SUPPORT=y -CONFIG_CODEC_ES8374_SUPPORT=y -CONFIG_CODEC_ES8388_SUPPORT=y -CONFIG_CODEC_TAS5805M_SUPPORT=y -# CONFIG_CODEC_ZL38063_SUPPORT is not set -# CONFIG_CODEC_CJC8910_SUPPORT is not set -# end of Audio Codec Device Configuration - -# -# JPEG Decoder -# -CONFIG_JD_USE_ROM=y -# end of JPEG Decoder - -# -# ESP LCD TOUCH -# -CONFIG_ESP_LCD_TOUCH_MAX_POINTS=5 -CONFIG_ESP_LCD_TOUCH_MAX_BUTTONS=1 -# end of ESP LCD TOUCH - -# -# ESP LCD TOUCH - CST816S -# -# CONFIG_ESP_LCD_TOUCH_CST816S_DISABLE_READ_ID is not set -# end of ESP LCD TOUCH - CST816S - -# -# ESP LVGL PORT -# -# end of ESP LVGL PORT - -# -# mmap file support format -# -CONFIG_MMAP_FILE_NAME_LENGTH=16 -# end of mmap file support format - -# -# IOT Knob -# -CONFIG_KNOB_PERIOD_TIME_MS=3 -CONFIG_KNOB_DEBOUNCE_TICKS=2 -CONFIG_KNOB_HIGH_LIMIT=1000 -CONFIG_KNOB_LOW_LIMIT=-1000 -# end of IOT Knob - -# -# LVGL configuration -# -CONFIG_LV_CONF_SKIP=y -# CONFIG_LV_CONF_MINIMAL is not set - -# -# Color Settings -# -# CONFIG_LV_COLOR_DEPTH_32 is not set -# CONFIG_LV_COLOR_DEPTH_24 is not set -CONFIG_LV_COLOR_DEPTH_16=y -# CONFIG_LV_COLOR_DEPTH_8 is not set -# CONFIG_LV_COLOR_DEPTH_1 is not set -CONFIG_LV_COLOR_DEPTH=16 -# end of Color Settings - -# -# Memory Settings -# -# CONFIG_LV_USE_BUILTIN_MALLOC is not set -CONFIG_LV_USE_CLIB_MALLOC=y -# CONFIG_LV_USE_MICROPYTHON_MALLOC is not set -# CONFIG_LV_USE_RTTHREAD_MALLOC is not set -# CONFIG_LV_USE_CUSTOM_MALLOC is not set -# CONFIG_LV_USE_BUILTIN_STRING is not set -CONFIG_LV_USE_CLIB_STRING=y -# CONFIG_LV_USE_CUSTOM_STRING is not set -# CONFIG_LV_USE_BUILTIN_SPRINTF is not set -CONFIG_LV_USE_CLIB_SPRINTF=y -# CONFIG_LV_USE_CUSTOM_SPRINTF is not set -# end of Memory Settings - -# -# HAL Settings -# -CONFIG_LV_DEF_REFR_PERIOD=33 -CONFIG_LV_DPI_DEF=130 -# end of HAL Settings - -# -# Operating System (OS) -# -CONFIG_LV_OS_NONE=y -# CONFIG_LV_OS_PTHREAD is not set -# CONFIG_LV_OS_FREERTOS is not set -# CONFIG_LV_OS_CMSIS_RTOS2 is not set -# CONFIG_LV_OS_RTTHREAD is not set -# CONFIG_LV_OS_WINDOWS is not set -# CONFIG_LV_OS_MQX is not set -# CONFIG_LV_OS_CUSTOM is not set -# end of Operating System (OS) - -# -# Rendering Configuration -# -CONFIG_LV_DRAW_BUF_STRIDE_ALIGN=1 -CONFIG_LV_DRAW_BUF_ALIGN=4 -CONFIG_LV_DRAW_LAYER_SIMPLE_BUF_SIZE=24576 -CONFIG_LV_DRAW_LAYER_MAX_MEMORY=0 -CONFIG_LV_DRAW_THREAD_STACK_SIZE=8192 -CONFIG_LV_DRAW_THREAD_PRIO=3 -CONFIG_LV_USE_DRAW_SW=y -CONFIG_LV_DRAW_SW_SUPPORT_RGB565=y -CONFIG_LV_DRAW_SW_SUPPORT_RGB565A8=y -CONFIG_LV_DRAW_SW_SUPPORT_RGB888=y -CONFIG_LV_DRAW_SW_SUPPORT_XRGB8888=y -CONFIG_LV_DRAW_SW_SUPPORT_ARGB8888=y -CONFIG_LV_DRAW_SW_SUPPORT_L8=y -CONFIG_LV_DRAW_SW_SUPPORT_AL88=y -CONFIG_LV_DRAW_SW_SUPPORT_A8=y -CONFIG_LV_DRAW_SW_SUPPORT_I1=y -CONFIG_LV_DRAW_SW_I1_LUM_THRESHOLD=127 -CONFIG_LV_DRAW_SW_DRAW_UNIT_CNT=1 -# CONFIG_LV_USE_DRAW_ARM2D_SYNC is not set -# CONFIG_LV_USE_NATIVE_HELIUM_ASM is not set -CONFIG_LV_DRAW_SW_COMPLEX=y -# CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS is not set -CONFIG_LV_DRAW_SW_SHADOW_CACHE_SIZE=0 -CONFIG_LV_DRAW_SW_CIRCLE_CACHE_SIZE=4 -CONFIG_LV_DRAW_SW_ASM_NONE=y -# CONFIG_LV_DRAW_SW_ASM_NEON is not set -# CONFIG_LV_DRAW_SW_ASM_HELIUM is not set -# CONFIG_LV_DRAW_SW_ASM_CUSTOM is not set -CONFIG_LV_USE_DRAW_SW_ASM=0 -# CONFIG_LV_USE_DRAW_VGLITE is not set -# CONFIG_LV_USE_PXP is not set -# CONFIG_LV_USE_DRAW_G2D is not set -# CONFIG_LV_USE_DRAW_DAVE2D is not set -# CONFIG_LV_USE_DRAW_SDL is not set -# CONFIG_LV_USE_DRAW_VG_LITE is not set -# CONFIG_LV_USE_VECTOR_GRAPHIC is not set -# CONFIG_LV_USE_DRAW_DMA2D is not set -# end of Rendering Configuration - -# -# Feature Configuration -# - -# -# Logging -# -# CONFIG_LV_USE_LOG is not set -# end of Logging - -# -# Asserts -# -CONFIG_LV_USE_ASSERT_NULL=y -CONFIG_LV_USE_ASSERT_MALLOC=y -CONFIG_LV_USE_ASSERT_STYLE=y -# CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set -# CONFIG_LV_USE_ASSERT_OBJ is not set -CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" -# end of Asserts - -# -# Debug -# -# CONFIG_LV_USE_REFR_DEBUG is not set -# CONFIG_LV_USE_LAYER_DEBUG is not set -# CONFIG_LV_USE_PARALLEL_DRAW_DEBUG is not set -# end of Debug - -# -# Others -# -# CONFIG_LV_ENABLE_GLOBAL_CUSTOM is not set -CONFIG_LV_CACHE_DEF_SIZE=0 -CONFIG_LV_IMAGE_HEADER_CACHE_DEF_CNT=0 -CONFIG_LV_GRADIENT_MAX_STOPS=2 -CONFIG_LV_COLOR_MIX_ROUND_OFS=128 -# CONFIG_LV_OBJ_STYLE_CACHE is not set -# CONFIG_LV_USE_OBJ_ID is not set -# CONFIG_LV_USE_OBJ_NAME is not set -# CONFIG_LV_USE_OBJ_PROPERTY is not set -# end of Others -# end of Feature Configuration - -# -# Compiler Settings -# -# CONFIG_LV_BIG_ENDIAN_SYSTEM is not set -CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1 -# CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set -# CONFIG_LV_USE_FLOAT is not set -# CONFIG_LV_USE_MATRIX is not set -# CONFIG_LV_USE_PRIVATE_API is not set -# end of Compiler Settings - -# -# Font Usage -# - -# -# Enable built-in fonts -# -# CONFIG_LV_FONT_MONTSERRAT_8 is not set -# CONFIG_LV_FONT_MONTSERRAT_10 is not set -# CONFIG_LV_FONT_MONTSERRAT_12 is not set -CONFIG_LV_FONT_MONTSERRAT_14=y -# CONFIG_LV_FONT_MONTSERRAT_16 is not set -# CONFIG_LV_FONT_MONTSERRAT_18 is not set -# CONFIG_LV_FONT_MONTSERRAT_20 is not set -# CONFIG_LV_FONT_MONTSERRAT_22 is not set -# CONFIG_LV_FONT_MONTSERRAT_24 is not set -# CONFIG_LV_FONT_MONTSERRAT_26 is not set -# CONFIG_LV_FONT_MONTSERRAT_28 is not set -# CONFIG_LV_FONT_MONTSERRAT_30 is not set -# CONFIG_LV_FONT_MONTSERRAT_32 is not set -# CONFIG_LV_FONT_MONTSERRAT_34 is not set -# CONFIG_LV_FONT_MONTSERRAT_36 is not set -# CONFIG_LV_FONT_MONTSERRAT_38 is not set -# CONFIG_LV_FONT_MONTSERRAT_40 is not set -# CONFIG_LV_FONT_MONTSERRAT_42 is not set -# CONFIG_LV_FONT_MONTSERRAT_44 is not set -# CONFIG_LV_FONT_MONTSERRAT_46 is not set -# CONFIG_LV_FONT_MONTSERRAT_48 is not set -# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set -# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set -# CONFIG_LV_FONT_SIMSUN_14_CJK is not set -# CONFIG_LV_FONT_SIMSUN_16_CJK is not set -# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_14_CJK is not set -# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_16_CJK is not set -# CONFIG_LV_FONT_UNSCII_8 is not set -# CONFIG_LV_FONT_UNSCII_16 is not set -# end of Enable built-in fonts - -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_10 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set -CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14=y -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set -# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set -# CONFIG_LV_FONT_DEFAULT_SIMSUN_14_CJK is not set -# CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set -# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_14_CJK is not set -# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_16_CJK is not set -# CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set -# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set -CONFIG_LV_FONT_FMT_TXT_LARGE=y -# CONFIG_LV_USE_FONT_COMPRESSED is not set -# CONFIG_LV_USE_FONT_PLACEHOLDER is not set - -# -# Enable static fonts -# -# end of Enable static fonts -# end of Font Usage - -# -# Text Settings -# -CONFIG_LV_TXT_ENC_UTF8=y -# CONFIG_LV_TXT_ENC_ASCII is not set -CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_)}" -CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0 -CONFIG_LV_TXT_COLOR_CMD="#" -# CONFIG_LV_USE_BIDI is not set -# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set -# end of Text Settings - -# -# Widget Usage -# -CONFIG_LV_WIDGETS_HAS_DEFAULT_VALUE=y -# CONFIG_LV_USE_ANIMIMG is not set -CONFIG_LV_USE_ARC=y -CONFIG_LV_USE_BAR=y -CONFIG_LV_USE_BUTTON=y -CONFIG_LV_USE_BUTTONMATRIX=y -# CONFIG_LV_USE_CALENDAR is not set -CONFIG_LV_USE_CANVAS=y -# CONFIG_LV_USE_CHART is not set -CONFIG_LV_USE_CHECKBOX=y -CONFIG_LV_USE_DROPDOWN=y -CONFIG_LV_USE_IMAGE=y -CONFIG_LV_USE_IMAGEBUTTON=y -# CONFIG_LV_USE_KEYBOARD is not set -CONFIG_LV_USE_LABEL=y -CONFIG_LV_LABEL_TEXT_SELECTION=y -CONFIG_LV_LABEL_LONG_TXT_HINT=y -CONFIG_LV_LABEL_WAIT_CHAR_COUNT=3 -# CONFIG_LV_USE_LED is not set -CONFIG_LV_USE_LINE=y -# CONFIG_LV_USE_LIST is not set -# CONFIG_LV_USE_MENU is not set -# CONFIG_LV_USE_MSGBOX is not set -CONFIG_LV_USE_ROLLER=y -CONFIG_LV_USE_SCALE=y -CONFIG_LV_USE_SLIDER=y -# CONFIG_LV_USE_SPAN is not set -# CONFIG_LV_USE_SPINBOX is not set -# CONFIG_LV_USE_SPINNER is not set -CONFIG_LV_USE_SWITCH=y -CONFIG_LV_USE_TEXTAREA=y -CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500 -CONFIG_LV_USE_TABLE=y -# CONFIG_LV_USE_TABVIEW is not set -# CONFIG_LV_USE_TILEVIEW is not set -# CONFIG_LV_USE_WIN is not set -# end of Widget Usage - -# -# Themes -# -CONFIG_LV_USE_THEME_DEFAULT=y -# CONFIG_LV_THEME_DEFAULT_DARK is not set -CONFIG_LV_THEME_DEFAULT_GROW=y -CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME=80 -CONFIG_LV_USE_THEME_SIMPLE=y -# CONFIG_LV_USE_THEME_MONO is not set -# end of Themes - -# -# Layouts -# -CONFIG_LV_USE_FLEX=y -CONFIG_LV_USE_GRID=y -# end of Layouts - -# -# 3rd Party Libraries -# -CONFIG_LV_FS_DEFAULT_DRIVER_LETTER=0 -# CONFIG_LV_USE_FS_STDIO is not set -# CONFIG_LV_USE_FS_POSIX is not set -# CONFIG_LV_USE_FS_WIN32 is not set -# CONFIG_LV_USE_FS_FATFS is not set -# CONFIG_LV_USE_FS_MEMFS is not set -# CONFIG_LV_USE_FS_LITTLEFS is not set -# CONFIG_LV_USE_FS_ARDUINO_ESP_LITTLEFS is not set -# CONFIG_LV_USE_FS_ARDUINO_SD is not set -# CONFIG_LV_USE_FS_UEFI is not set -# CONFIG_LV_USE_LODEPNG is not set -# CONFIG_LV_USE_LIBPNG is not set -# CONFIG_LV_USE_BMP is not set -# CONFIG_LV_USE_TJPGD is not set -# CONFIG_LV_USE_LIBJPEG_TURBO is not set -CONFIG_LV_USE_GIF=y -# CONFIG_LV_GIF_CACHE_DECODE_DATA is not set -# CONFIG_LV_BIN_DECODER_RAM_LOAD is not set -# CONFIG_LV_USE_RLE is not set -# CONFIG_LV_USE_QRCODE is not set -# CONFIG_LV_USE_BARCODE is not set -# CONFIG_LV_USE_FREETYPE is not set -# CONFIG_LV_USE_TINY_TTF is not set -# CONFIG_LV_USE_RLOTTIE is not set -# CONFIG_LV_USE_THORVG is not set -# CONFIG_LV_USE_LZ4 is not set -# CONFIG_LV_USE_FFMPEG is not set -# end of 3rd Party Libraries - -# -# Others -# -# CONFIG_LV_USE_SNAPSHOT is not set -# CONFIG_LV_USE_SYSMON is not set -# CONFIG_LV_USE_PROFILER is not set -# CONFIG_LV_USE_MONKEY is not set -# CONFIG_LV_USE_GRIDNAV is not set -# CONFIG_LV_USE_FRAGMENT is not set -CONFIG_LV_USE_IMGFONT=y -CONFIG_LV_USE_OBSERVER=y -# CONFIG_LV_USE_IME_PINYIN is not set -# CONFIG_LV_USE_FILE_EXPLORER is not set -# CONFIG_LV_USE_FONT_MANAGER is not set -# CONFIG_LV_USE_TEST is not set -# CONFIG_LV_USE_XML is not set -# CONFIG_LV_USE_COLOR_FILTER is not set -CONFIG_LVGL_VERSION_MAJOR=9 -CONFIG_LVGL_VERSION_MINOR=3 -CONFIG_LVGL_VERSION_PATCH=0 -# end of Others - -# -# Devices -# -# CONFIG_LV_USE_SDL is not set -# CONFIG_LV_USE_X11 is not set -# CONFIG_LV_USE_WAYLAND is not set -# CONFIG_LV_USE_LINUX_FBDEV is not set -# CONFIG_LV_USE_NUTTX is not set -# CONFIG_LV_USE_LINUX_DRM is not set -# CONFIG_LV_USE_TFT_ESPI is not set -# CONFIG_LV_USE_EVDEV is not set -# CONFIG_LV_USE_LIBINPUT is not set -# CONFIG_LV_USE_ST7735 is not set -# CONFIG_LV_USE_ST7789 is not set -# CONFIG_LV_USE_ST7796 is not set -# CONFIG_LV_USE_ILI9341 is not set -# CONFIG_LV_USE_GENERIC_MIPI is not set -# CONFIG_LV_USE_RENESAS_GLCDC is not set -# CONFIG_LV_USE_ST_LTDC is not set -# CONFIG_LV_USE_FT81X is not set -# CONFIG_LV_USE_UEFI is not set -# CONFIG_LV_USE_OPENGLES is not set -# CONFIG_LV_USE_QNX is not set -# end of Devices - -# -# Examples -# -# CONFIG_LV_BUILD_EXAMPLES is not set -# end of Examples - -# -# Demos -# -CONFIG_LV_BUILD_DEMOS=y -# CONFIG_LV_USE_DEMO_WIDGETS is not set -# CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set -# CONFIG_LV_USE_DEMO_BENCHMARK is not set -# CONFIG_LV_USE_DEMO_RENDER is not set -# CONFIG_LV_USE_DEMO_SCROLL is not set -# CONFIG_LV_USE_DEMO_STRESS is not set -# CONFIG_LV_USE_DEMO_MUSIC is not set -# CONFIG_LV_USE_DEMO_FLEX_LAYOUT is not set -# CONFIG_LV_USE_DEMO_MULTILANG is not set -# CONFIG_LV_USE_DEMO_SMARTWATCH is not set -# CONFIG_LV_USE_DEMO_EBIKE is not set -# CONFIG_LV_USE_DEMO_HIGH_RES is not set -# end of Demos -# end of LVGL configuration - -# -# SH1106 ESP-IDF Driver -# -# end of Component config - -# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set - -# Deprecated options for backward compatibility -# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set -# CONFIG_NO_BLOBS is not set -CONFIG_APP_ROLLBACK_ENABLE=y -# CONFIG_APP_ANTI_ROLLBACK is not set -CONFIG_LOG_BOOTLOADER_LEVEL_NONE=y -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_INFO is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=0 -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -CONFIG_FLASHMODE_QIO=y -# CONFIG_FLASHMODE_QOUT is not set -# CONFIG_FLASHMODE_DIO is not set -# CONFIG_FLASHMODE_DOUT is not set -CONFIG_MONITOR_BAUD=115200 -# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set -# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set -CONFIG_OPTIMIZATION_LEVEL_RELEASE=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y -CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y -# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set -CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 -CONFIG_CXX_EXCEPTIONS=y -CONFIG_CXX_EXCEPTIONS_EMG_POOL_SIZE=1024 -CONFIG_STACK_CHECK_NONE=y -# CONFIG_STACK_CHECK_NORM is not set -# CONFIG_STACK_CHECK_STRONG is not set -# CONFIG_STACK_CHECK_ALL is not set -# CONFIG_WARN_WRITE_STRINGS is not set -# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set -CONFIG_ESP32_APPTRACE_DEST_NONE=y -CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y -# CONFIG_EXTERNAL_COEX_ENABLE is not set -# CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set -# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set -# CONFIG_MCPWM_ISR_IRAM_SAFE is not set -# CONFIG_EVENT_LOOP_PROFILING is not set -CONFIG_POST_EVENTS_FROM_ISR=y -CONFIG_POST_EVENTS_FROM_IRAM_ISR=y -CONFIG_GDBSTUB_SUPPORT_TASKS=y -CONFIG_GDBSTUB_MAX_TASKS=32 -# CONFIG_OTA_ALLOW_HTTP is not set -CONFIG_ESP32S3_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP32S3_RTC_CLK_SRC_INT_RC=y -# CONFIG_ESP32S3_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_ESP32S3_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_ESP32S3_RTC_CLK_SRC_INT_8MD256 is not set -CONFIG_ESP32S3_RTC_CLK_CAL_CYCLES=1024 -CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y -CONFIG_BROWNOUT_DET=y -CONFIG_ESP32S3_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_7=y -CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_1 is not set -CONFIG_BROWNOUT_DET_LVL=7 -CONFIG_ESP32S3_BROWNOUT_DET_LVL=7 -CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y -CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP32_PHY_MAX_TX_POWER=20 -# CONFIG_REDUCE_PHY_TX_POWER is not set -# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set -CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y -CONFIG_PM_POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP=y -CONFIG_ESP32S3_SPIRAM_SUPPORT=y -CONFIG_DEFAULT_PSRAM_CLK_IO=30 -CONFIG_DEFAULT_PSRAM_CS_IO=26 -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=240 -CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=4096 -CONFIG_MAIN_TASK_STACK_SIZE=8192 -CONFIG_CONSOLE_UART_DEFAULT=y -# CONFIG_CONSOLE_UART_CUSTOM is not set -# CONFIG_CONSOLE_UART_NONE is not set -# CONFIG_ESP_CONSOLE_UART_NONE is not set -CONFIG_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_CONSOLE_UART_BAUDRATE=115200 -CONFIG_INT_WDT=y -CONFIG_INT_WDT_TIMEOUT_MS=300 -CONFIG_INT_WDT_CHECK_CPU1=y -CONFIG_TASK_WDT=y -CONFIG_ESP_TASK_WDT=y -# CONFIG_TASK_WDT_PANIC is not set -CONFIG_TASK_WDT_TIMEOUT_S=10 -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set -CONFIG_ESP32S3_DEBUG_OCDAWARE=y -CONFIG_IPC_TASK_STACK_SIZE=1280 -CONFIG_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP32_WIFI_ENABLED=y -CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=6 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=8 -# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_CSI_ENABLED is not set -CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP32_WIFI_TX_BA_WIN=6 -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_NVS_ENABLED=y -CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 -# CONFIG_ESP32_WIFI_IRAM_OPT is not set -# CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set -CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y -CONFIG_WPA_MBEDTLS_CRYPTO=y -# CONFIG_WPA_WAPI_PSK is not set -# CONFIG_WPA_SUITE_B_192 is not set -# CONFIG_WPA_11KV_SUPPORT is not set -# CONFIG_WPA_MBO_SUPPORT is not set -# CONFIG_WPA_DPP_SUPPORT is not set -# CONFIG_WPA_11R_SUPPORT is not set -# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set -# CONFIG_WPA_WPS_STRICT is not set -# CONFIG_WPA_DEBUG_PRINT is not set -# CONFIG_WPA_TESTING_OPTIONS is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y -CONFIG_TIMER_TASK_PRIORITY=1 -CONFIG_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_TIMER_QUEUE_LENGTH=10 -# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set -CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y -# CONFIG_HAL_ASSERTION_SILIENT is not set -# CONFIG_L2_TO_L3_COPY is not set -CONFIG_ESP_GRATUITOUS_ARP=y -CONFIG_GARP_TMR_INTERVAL=60 -CONFIG_TCPIP_RECVMBOX_SIZE=32 -CONFIG_TCP_MAXRTX=12 -CONFIG_TCP_SYNMAXRTX=12 -CONFIG_TCP_MSS=1440 -CONFIG_TCP_MSL=60000 -CONFIG_TCP_SND_BUF_DEFAULT=5760 -CONFIG_TCP_WND_DEFAULT=5760 -CONFIG_TCP_RECVMBOX_SIZE=6 -CONFIG_TCP_QUEUE_OOSEQ=y -CONFIG_TCP_OVERSIZE_MSS=y -# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_TCP_OVERSIZE_DISABLE is not set -CONFIG_UDP_RECVMBOX_SIZE=6 -CONFIG_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_PPP_SUPPORT is not set -CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set -CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y -CONFIG_NEWLIB_NANO_FORMAT=y -CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y -CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_SYSTIMER=y -CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_FRC1=y -# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set -# CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set -# CONFIG_ESP32S3_TIME_SYSCALL_USE_SYSTIMER is not set -# CONFIG_ESP32S3_TIME_SYSCALL_USE_FRC1 is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set -# CONFIG_ESP32S3_TIME_SYSCALL_USE_NONE is not set -CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_ESP32_PTHREAD_STACK_MIN=768 -CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set -CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" -CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set -CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_SUPPORT_TERMIOS=y -CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# End of deprecated options