Как использовать WatchDog на esp32-s3-devkitc-1

На моей плате esp32dev я использовал сторожевой таймер следующим образом, и он работал отлично.

// 1) include

#include <Arduino.h>
#include "soc/soc.h"
#include "soc/rtc_cntl_reg.h"
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <esp_task_wdt.h>
#include <esp_log.h>
#include <soc/rtc_wdt.h>


// 2) activate the watchdog

watchdogRTC();


// 3) reset timer of the  watchdog
rtc_wdt_feed(); //Alimenta o RTC WDT


// 4) code to test

    if (Serial.available())
    {
     while(1){
     Serial.println("preso");
     delay(1000);
     }
    }


// 5) final functio

void watchdogRTC()
{
   rtc_wdt_protect_off();      //Disable RTC WDT write protection
   //Set stage 0 to trigger a system reset after 1000ms
   rtc_wdt_set_stage(RTC_WDT_STAGE0, RTC_WDT_STAGE_ACTION_RESET_RTC);
   rtc_wdt_set_time(RTC_WDT_STAGE0, 9000);
   rtc_wdt_enable();           //Start the RTC WDT timer
   rtc_wdt_protect_on();       //Enable RTC WDT write protection
}

Platformio.ini

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
board_build.f_flash = 80000000L

На моем esp32-s3-devkitc-1, используя тот же подход, я получаю ошибки:

«RTC_WDT_STG_SEL_OFF» не был объявлен в этой области, «RTC_WDT_STG_SEL_INT» не был объявлен в этой области. «RTC_WDT_STG_SEL_RESET_CPU» не был объявлен в этой области. «RTC_WDT_STG_SEL_RESET_SYSTEM» не был объявлен в этой области. «RTC_WDT_STG_SEL_RESET_RTC» не был объявлен в этой области.

Platformio.ini

[env:esp32-s3-devkitc-1]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
monitor_speed = 115200
board_build.f_flash = 80000000L
github.com/espressif/esp-idf/issues/8038
gre_gor 19.06.2024 14:07

Спасибо за ответ. похоже, что это не реализовано до сих пор. Есть ли способ создать функциональный WatchDog, работающий на плате разработчика ESP32-S3?

Carlos Costa 19.06.2024 15:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ответ на эту задачу Иван Грохотков (разработчик Espressif) из https://github.com/espressif/esp-idf/issues/8038#issuecomment-1091860842

Если вам не нужен конкретно заголовок rtc_wdt.h, но вам нужно использовать сторожевой таймер RTC, вы можете попробовать использовать вместо него компоненты/hal/include/hal/wdt_hal.h (hal/wdt_hal.h). Как и rtc_wdt.h, это «частный» заголовок, который может измениться в будущем несовместимым образом. Но он поддерживается на всех чипах.

К сожалению, на данный момент у нас нет стабильного общедоступного API для сторожевого таймера RTC.

Другие вопросы по теме