diff --git a/components/freertos/port/port_common.c b/components/freertos/port/port_common.c index 05d5d1029c..ad0bc8cf71 100644 --- a/components/freertos/port/port_common.c +++ b/components/freertos/port/port_common.c @@ -83,10 +83,10 @@ void esp_startup_start_app_common(void) } #if !CONFIG_FREERTOS_UNICORE -static volatile bool s_app_cpu_startup_done = false; -static bool s_app_cpu_startup_idle_hook_cb(void) +static volatile bool s_other_cpu_startup_done = false; +static bool other_cpu_startup_idle_hook_cb(void) { - s_app_cpu_startup_done = true; + s_other_cpu_startup_done = true; return true; } #endif @@ -94,12 +94,12 @@ static bool s_app_cpu_startup_idle_hook_cb(void) static void main_task(void* args) { #if !CONFIG_FREERTOS_UNICORE - // Wait for FreeRTOS initialization to finish on APP CPU, before replacing its startup stack - esp_register_freertos_idle_hook_for_cpu(s_app_cpu_startup_idle_hook_cb, 1); - while (!s_app_cpu_startup_done) { + // Wait for FreeRTOS initialization to finish on other core, before replacing its startup stack + esp_register_freertos_idle_hook_for_cpu(other_cpu_startup_idle_hook_cb, !xPortGetCoreID()); + while (!s_other_cpu_startup_done) { ; } - esp_deregister_freertos_idle_hook_for_cpu(s_app_cpu_startup_idle_hook_cb, 1); + esp_deregister_freertos_idle_hook_for_cpu(other_cpu_startup_idle_hook_cb, !xPortGetCoreID()); #endif // [refactor-todo] check if there is a way to move the following block to esp_system startup