Kaynağa Gözat

Merge branch 'bugfix/startup_detect_single_core' into 'master'

esp32: abort when running on single core chip in dual core mode

See merge request idf/esp-idf!3308
Ivan Grokhotkov 7 yıl önce
ebeveyn
işleme
e4725adc87

+ 6 - 0
components/esp32/cpu_start.c

@@ -30,6 +30,7 @@
 #include "soc/rtc_cntl_reg.h"
 #include "soc/timer_group_reg.h"
 #include "soc/rtc_wdt.h"
+#include "soc/efuse_reg.h"
 
 #include "driver/rtc_io.h"
 
@@ -166,6 +167,11 @@ void IRAM_ATTR call_start_cpu0()
     ESP_EARLY_LOGI(TAG, "Pro cpu up.");
 
 #if !CONFIG_FREERTOS_UNICORE
+    if (REG_GET_BIT(EFUSE_BLK0_RDATA3_REG, EFUSE_RD_CHIP_VER_DIS_APP_CPU)) {
+        ESP_EARLY_LOGE(TAG, "Running on single core chip, but application is built with dual core support.");
+        ESP_EARLY_LOGE(TAG, "Please enable CONFIG_FREERTOS_UNICORE option in menuconfig.");
+        abort();
+    }
     ESP_EARLY_LOGI(TAG, "Starting app cpu, entry point is %p", call_start_cpu1);
     //Flush and enable icache for APP CPU
     Cache_Flush(1);

+ 5 - 0
docs/en/get-started-cmake/index.rst

@@ -248,6 +248,11 @@ Here are couple of tips on navigation and use of ``menuconfig``:
 * Pressing ``?`` while highlighting a configuration item displays help about that item.
 * Type ``/`` to search the configuration items.
 
+.. attention::
+
+    When using ESP32-DevKitC board with ESP32-SOLO-1 module, enable single core mode (:ref:`CONFIG_FREERTOS_UNICORE`) in menuconfig before flashing example applications.
+
+
 .. _get-started-build-cmake:
 
 Build The Project

+ 5 - 0
docs/en/get-started/index.rst

@@ -220,6 +220,11 @@ Here are couple of tips on navigation and use of ``menuconfig``:
     If you are **Arch Linux** user, navigate to ``SDK tool configuration`` and change the name of ``Python 2 interpreter`` from ``python`` to ``python2``.
 
 
+.. attention::
+
+    When using ESP32-DevKitC board with ESP32-SOLO-1 module, enable single core mode (:ref:`CONFIG_FREERTOS_UNICORE`) in menuconfig before flashing example applications.
+
+
 .. _get-started-build-flash:
 
 Build and Flash

+ 4 - 0
docs/zh_CN/get-started/index.rst

@@ -216,6 +216,10 @@ ESP-IDF 的 :idf:`examples` 目录下有一系列示例工程,都可以按照
 
     如果你是 **Arch Linux** 用户,需要进入 ``SDK tool configuration`` 将 ``Python 2 interpreter`` 从 ``python`` 修改为 ``python2``。
 
+.. attention::
+
+    如果 ESP32-DevKitC 板载的是 ESP32-SOLO-1 模组,请务必在烧写示例程序之前在 menuconfig 中使能单核模式(:ref:CONFIG_FREERTOS_UNICORE)。
+
 
 .. _get-started-build-flash: