From 82ffe7e438d4d53360ff1a2f9f608c2ec34ab17c Mon Sep 17 00:00:00 2001 From: wuzhenghui Date: Mon, 29 Aug 2022 11:55:35 +0800 Subject: [PATCH] replacing reset by register operations with ROM interfaces to decouple the effects of register name changes --- components/bootloader_support/src/bootloader_utility.c | 2 +- components/esp_hw_support/include/esp_fault.h | 7 +++---- components/esp_system/esp_system.c | 3 ++- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/bootloader_support/src/bootloader_utility.c b/components/bootloader_support/src/bootloader_utility.c index b3c4ed1bf0..ba059f54b4 100644 --- a/components/bootloader_support/src/bootloader_utility.c +++ b/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 */ diff --git a/components/esp_hw_support/include/esp_fault.h b/components/esp_hw_support/include/esp_fault.h index 910ba59d06..19b0a9e0cf 100644 --- a/components/esp_hw_support/include/esp_fault.h +++ b/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 diff --git a/components/esp_system/esp_system.c b/components/esp_system/esp_system.c index 0767a874fd..30f657871b 100644 --- a/components/esp_system/esp_system.c +++ b/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) { ; }