Parcourir la source

replacing reset by register operations with ROM interfaces to decouple the effects of register name changes

wuzhenghui il y a 3 ans
Parent
commit
82ffe7e438

+ 1 - 1
components/bootloader_support/src/bootloader_utility.c

@@ -864,7 +864,7 @@ void bootloader_reset(void)
 #ifdef BOOTLOADER_BUILD
     bootloader_atexit();
     esp_rom_delay_us(1000); /* Allow last byte to leave FIFO */
-    REG_WRITE(RTC_CNTL_OPTIONS0_REG, RTC_CNTL_SW_SYS_RST);
+    esp_rom_software_reset_system();
     while (1) { }       /* This line will never be reached, used to keep gcc happy */
 #else
     abort();            /* This function should really not be called from application code */

+ 3 - 4
components/esp_hw_support/include/esp_fault.h

@@ -4,7 +4,6 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 #include "sdkconfig.h"
-#include "soc/rtc_cntl_reg.h"
 #include "esp_rom_sys.h"
 
 #pragma once
@@ -70,9 +69,9 @@ extern "C" {
 */
 #ifndef ESP_FAULT_ASSERT_DEBUG
 
-#define _ESP_FAULT_RESET()  do {                                \
-        REG_WRITE(RTC_CNTL_OPTIONS0_REG, RTC_CNTL_SW_SYS_RST);  \
-        _ESP_FAULT_ILLEGAL_INSTRUCTION;                         \
+#define _ESP_FAULT_RESET()  do {        \
+        esp_rom_software_reset_system();       \
+        _ESP_FAULT_ILLEGAL_INSTRUCTION; \
     } while(0)
 
 #else // ESP_FAULT_ASSERT_DEBUG

+ 2 - 1
components/esp_system/esp_system.c

@@ -14,6 +14,7 @@
 #include "soc/rtc_cntl_reg.h"
 #include "esp_private/panic_internal.h"
 #include "esp_rom_uart.h"
+#include "esp_rom_sys.h"
 #if CONFIG_ESP_SYSTEM_MEMPROT_FEATURE
 #if CONFIG_IDF_TARGET_ESP32S2
 #include "esp32s2/memprot.h"
@@ -42,7 +43,7 @@ void IRAM_ATTR esp_restart_noos_dig(void)
     esp_cpu_unstall(PRO_CPU_NUM);
 #endif
     // reset the digital part
-    SET_PERI_REG_MASK(RTC_CNTL_OPTIONS0_REG, RTC_CNTL_SW_SYS_RST);
+    esp_rom_software_reset_system();
     while (true) {
         ;
     }