forked from xiaozhi/xiaozhi-esp32
Reduce SRAM usage of audio tasks
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
# CMakeLists in this exact order for cmake to work correctly
|
# CMakeLists in this exact order for cmake to work correctly
|
||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
set(PROJECT_VER "1.8.2")
|
set(PROJECT_VER "1.8.3")
|
||||||
|
|
||||||
# Add this line to disable the specific warning
|
# Add this line to disable the specific warning
|
||||||
add_compile_options(-Wno-missing-field-initializers)
|
add_compile_options(-Wno-missing-field-initializers)
|
||||||
|
|||||||
@@ -257,6 +257,7 @@ file(GLOB COMMON_SOUNDS ${CMAKE_CURRENT_SOURCE_DIR}/assets/common/*.p3)
|
|||||||
if(CONFIG_IDF_TARGET_ESP32)
|
if(CONFIG_IDF_TARGET_ESP32)
|
||||||
list(REMOVE_ITEM SOURCES "audio/codecs/box_audio_codec.cc"
|
list(REMOVE_ITEM SOURCES "audio/codecs/box_audio_codec.cc"
|
||||||
"audio/codecs/es8388_audio_codec.cc"
|
"audio/codecs/es8388_audio_codec.cc"
|
||||||
|
"audio/codecs/es8389_audio_codec.cc"
|
||||||
"led/gpio_led.cc"
|
"led/gpio_led.cc"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -97,34 +97,42 @@ void AudioService::Start() {
|
|||||||
|
|
||||||
esp_timer_start_periodic(audio_power_timer_, 1000000);
|
esp_timer_start_periodic(audio_power_timer_, 1000000);
|
||||||
|
|
||||||
/* Start the audio input task */
|
|
||||||
#if CONFIG_USE_AUDIO_PROCESSOR
|
#if CONFIG_USE_AUDIO_PROCESSOR
|
||||||
|
/* Start the audio input task */
|
||||||
xTaskCreatePinnedToCore([](void* arg) {
|
xTaskCreatePinnedToCore([](void* arg) {
|
||||||
AudioService* audio_service = (AudioService*)arg;
|
AudioService* audio_service = (AudioService*)arg;
|
||||||
audio_service->AudioInputTask();
|
audio_service->AudioInputTask();
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
}, "audio_input", 2048 * 3, this, 8, &audio_input_task_handle_, 1);
|
}, "audio_input", 2048 * 3, this, 8, &audio_input_task_handle_, 1);
|
||||||
#else
|
|
||||||
xTaskCreate([](void* arg) {
|
|
||||||
AudioService* audio_service = (AudioService*)arg;
|
|
||||||
audio_service->AudioInputTask();
|
|
||||||
vTaskDelete(NULL);
|
|
||||||
}, "audio_input", 2048 * 3, this, 8, &audio_input_task_handle_);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Start the audio output task */
|
/* Start the audio output task */
|
||||||
xTaskCreate([](void* arg) {
|
xTaskCreate([](void* arg) {
|
||||||
AudioService* audio_service = (AudioService*)arg;
|
AudioService* audio_service = (AudioService*)arg;
|
||||||
audio_service->AudioOutputTask();
|
audio_service->AudioOutputTask();
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
}, "audio_output", 4096, this, 3, &audio_output_task_handle_);
|
}, "audio_output", 2048 * 2, this, 3, &audio_output_task_handle_);
|
||||||
|
#else
|
||||||
|
/* Start the audio input task */
|
||||||
|
xTaskCreate([](void* arg) {
|
||||||
|
AudioService* audio_service = (AudioService*)arg;
|
||||||
|
audio_service->AudioInputTask();
|
||||||
|
vTaskDelete(NULL);
|
||||||
|
}, "audio_input", 2048 * 2, this, 8, &audio_input_task_handle_);
|
||||||
|
|
||||||
|
/* Start the audio output task */
|
||||||
|
xTaskCreate([](void* arg) {
|
||||||
|
AudioService* audio_service = (AudioService*)arg;
|
||||||
|
audio_service->AudioOutputTask();
|
||||||
|
vTaskDelete(NULL);
|
||||||
|
}, "audio_output", 2048, this, 3, &audio_output_task_handle_);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Start the opus codec task */
|
/* Start the opus codec task */
|
||||||
xTaskCreate([](void* arg) {
|
xTaskCreate([](void* arg) {
|
||||||
AudioService* audio_service = (AudioService*)arg;
|
AudioService* audio_service = (AudioService*)arg;
|
||||||
audio_service->OpusCodecTask();
|
audio_service->OpusCodecTask();
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
}, "opus_codec", 4096 * 7, this, 2, &opus_codec_task_handle_);
|
}, "opus_codec", 2048 * 13, this, 2, &opus_codec_task_handle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioService::Stop() {
|
void AudioService::Stop() {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ OledDisplay::OledDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handl
|
|||||||
ESP_LOGI(TAG, "Initialize LVGL");
|
ESP_LOGI(TAG, "Initialize LVGL");
|
||||||
lvgl_port_cfg_t port_cfg = ESP_LVGL_PORT_INIT_CONFIG();
|
lvgl_port_cfg_t port_cfg = ESP_LVGL_PORT_INIT_CONFIG();
|
||||||
port_cfg.task_priority = 1;
|
port_cfg.task_priority = 1;
|
||||||
|
port_cfg.task_stack = 6144;
|
||||||
port_cfg.timer_period_ms = 50;
|
port_cfg.timer_period_ms = 50;
|
||||||
lvgl_port_init(&port_cfg);
|
lvgl_port_init(&port_cfg);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user