Просмотр исходного кода

Merge branch 'bugfix/log_mixing_at_startup' into 'master'

fix(esp_system): Fixes mixing logs when two cores use esp_rom_printf

Closes IDF-7891

See merge request espressif/esp-idf!25996
Konstantin Kondrashov 2 лет назад
Родитель
Сommit
3166056078

+ 3 - 4
components/esp_system/port/cpu_start.c

@@ -233,7 +233,7 @@ void IRAM_ATTR call_start_cpu1(void)
 #endif
 
     s_cpu_up[1] = true;
-    ESP_EARLY_LOGI(TAG, "App cpu up.");
+    ESP_EARLY_LOGD(TAG, "App cpu up");
 
     // Clear interrupt matrix for APP CPU core
     core_intr_matrix_clear();
@@ -271,7 +271,7 @@ static void start_other_core(void)
         abort();
     }
 
-    ESP_EARLY_LOGI(TAG, "Starting app cpu, entry point is %p", call_start_cpu1);
+    ESP_EARLY_LOGD(TAG, "Starting app cpu, entry point is %p", call_start_cpu1);
 
 #if CONFIG_IDF_TARGET_ESP32 && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP
     Cache_Flush(1);
@@ -315,7 +315,6 @@ static void start_other_core(void)
         for (int i = 0; i < SOC_CPU_CORES_NUM; i++) {
             cpus_up &= s_cpu_up[i];
         }
-        //TODO: IDF-7891, check mixing logs
         esp_rom_delay_us(100);
     }
 }
@@ -571,7 +570,7 @@ void IRAM_ATTR call_start_cpu0(void)
     s_cpu_up[0] = true;
 #endif
 
-    ESP_EARLY_LOGI(TAG, "Pro cpu up.");
+    ESP_EARLY_LOGD(TAG, "Pro cpu up");
 
 #if SOC_CPU_CORES_NUM > 1 // there is no 'single-core mode' for natively single-core processors
 #if !CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE

+ 2 - 2
components/freertos/app_startup.c

@@ -96,7 +96,7 @@ void esp_startup_start_app(void)
         port_start_app_hook();
     }
 
-    ESP_EARLY_LOGI(APP_START_TAG, "Starting scheduler on CPU0");
+    ESP_EARLY_LOGD(APP_START_TAG, "Starting scheduler on CPU0");
     vTaskStartScheduler();
 }
 
@@ -130,7 +130,7 @@ void esp_startup_start_app_other_cores(void)
     // Initialize the cross-core interrupt on CPU1
     esp_crosscore_int_init();
 
-    ESP_EARLY_LOGI(APP_START_TAG, "Starting scheduler on CPU%d", xPortGetCoreID());
+    ESP_EARLY_LOGD(APP_START_TAG, "Starting scheduler on CPU%d", xPortGetCoreID());
     xPortStartScheduler();
     abort(); // Only get to here if FreeRTOS somehow very broken
 }

+ 1 - 1
tools/test_apps/system/ram_loadable_app/pytest_ram_loadable_app.py

@@ -14,7 +14,7 @@ from pytest_embedded_idf.dut import IdfDut
 @pytest.mark.generic
 @pytest.mark.parametrize('config', ['pure_ram',], indirect=True,)
 def test_pure_ram_loadable_app(dut: IdfDut) -> None:
-    dut.expect('app_start: Starting scheduler', timeout=10)
+    dut.expect('main_task: Calling app_main()', timeout=10)
     dut.expect('Time since boot: 3 seconds...', timeout=10)