mirror of
https://github.com/apache/nuttx.git
synced 2026-05-28 03:45:50 +08:00
xtensa/esp32: Wrap wdt deinitialization in a function
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
HEAD_ASRC = xtensa_vectors.S xtensa_window_vector.S xtensa_windowspill.S
|
HEAD_ASRC = xtensa_vectors.S xtensa_window_vector.S xtensa_windowspill.S
|
||||||
HEAD_ASRC += xtensa_int_handlers.S xtensa_user_handler.S
|
HEAD_ASRC += xtensa_int_handlers.S xtensa_user_handler.S
|
||||||
HEAD_CSRC = esp32_start.c
|
HEAD_CSRC = esp32_start.c esp32_wdt.c
|
||||||
|
|
||||||
# Common XTENSA files (arch/xtensa/src/common)
|
# Common XTENSA files (arch/xtensa/src/common)
|
||||||
|
|
||||||
@@ -169,12 +169,9 @@ ifeq ($(CONFIG_ESP32_PARTITION),y)
|
|||||||
CHIP_CSRCS += esp32_partition.c
|
CHIP_CSRCS += esp32_partition.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_ESP32_WDT),y)
|
|
||||||
CHIP_CSRCS += esp32_wdt.c
|
|
||||||
ifeq ($(CONFIG_WATCHDOG),y)
|
ifeq ($(CONFIG_WATCHDOG),y)
|
||||||
CHIP_CSRCS += esp32_wdt_lowerhalf.c
|
CHIP_CSRCS += esp32_wdt_lowerhalf.c
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARCH_HAVE_EXTRA_HEAPS),y)
|
ifeq ($(CONFIG_ARCH_HAVE_EXTRA_HEAPS),y)
|
||||||
CHIP_CSRCS += esp32_extraheaps.c
|
CHIP_CSRCS += esp32_extraheaps.c
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
#include "esp32_region.h"
|
#include "esp32_region.h"
|
||||||
#include "esp32_start.h"
|
#include "esp32_start.h"
|
||||||
#include "esp32_spiram.h"
|
#include "esp32_spiram.h"
|
||||||
|
#include "esp32_wdt.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
@@ -126,11 +127,7 @@ void IRAM_ATTR __start(void)
|
|||||||
* start the NuttX environment.
|
* start the NuttX environment.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
putreg32(RTC_CNTL_WDT_WKEY_VALUE, RTC_CNTL_WDTWPROTECT_REG);
|
esp32_wdt_early_deinit();
|
||||||
regval = getreg32(RTC_CNTL_WDTCONFIG0_REG);
|
|
||||||
regval &= ~RTC_CNTL_WDT_EN;
|
|
||||||
putreg32(regval, RTC_CNTL_WDTCONFIG0_REG);
|
|
||||||
putreg32(0, RTC_CNTL_WDTWPROTECT_REG);
|
|
||||||
|
|
||||||
/* Set CPU frequency configured in board.h */
|
/* Set CPU frequency configured in board.h */
|
||||||
|
|
||||||
|
|||||||
@@ -961,6 +961,24 @@ FAR struct esp32_wdt_dev_s *esp32_wdt_init(uint8_t wdt_id)
|
|||||||
return (FAR struct esp32_wdt_dev_s *)wdt;
|
return (FAR struct esp32_wdt_dev_s *)wdt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: esp32_wdt_early_deinit
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Disable the WDT(s) that was/were enabled by the bootloader.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void esp32_wdt_early_deinit(void)
|
||||||
|
{
|
||||||
|
uint32_t regval;
|
||||||
|
putreg32(RTC_CNTL_WDT_WKEY_VALUE, RTC_CNTL_WDTWPROTECT_REG);
|
||||||
|
regval = getreg32(RTC_CNTL_WDTCONFIG0_REG);
|
||||||
|
regval &= ~RTC_CNTL_WDT_EN;
|
||||||
|
putreg32(regval, RTC_CNTL_WDTCONFIG0_REG);
|
||||||
|
putreg32(0, RTC_CNTL_WDTWPROTECT_REG);
|
||||||
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: esp32_wdt_deinit
|
* Name: esp32_wdt_deinit
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ struct esp32_wdt_ops_s
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
FAR struct esp32_wdt_dev_s *esp32_wdt_init(uint8_t wdt_id);
|
FAR struct esp32_wdt_dev_s *esp32_wdt_init(uint8_t wdt_id);
|
||||||
|
void esp32_wdt_early_deinit(void);
|
||||||
int esp32_wdt_deinit(FAR struct esp32_wdt_dev_s *dev);
|
int esp32_wdt_deinit(FAR struct esp32_wdt_dev_s *dev);
|
||||||
bool esp32_wdt_is_running(FAR struct esp32_wdt_dev_s *dev);
|
bool esp32_wdt_is_running(FAR struct esp32_wdt_dev_s *dev);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user