add some task watchdog handling

This commit is contained in:
cyberman54 2022-01-27 18:04:37 +01:00
parent ad027f7e80
commit 13eaae74ac
5 changed files with 16 additions and 3 deletions

View File

@ -8,6 +8,9 @@
#include <RtcDateTime.h>
#include <Ticker.h>
// task watchdog functions
#include <esp_task_wdt.h>
// std::set for unified array functions
#include <set>
#include <array>

View File

@ -138,10 +138,12 @@ time_t get_gpstime(uint16_t *msec) {
void gps_loop(void *pvParameters) {
_ASSERT((uint32_t)pvParameters == 1); // FreeRTOS check
esp_task_wdt_add(NULL);
while (1) {
esp_task_wdt_reset(); // feed task watchdog
while (cfg.payloadmask & GPS_DATA) {
esp_task_wdt_reset(); // feed task watchdog
#ifdef GPS_SERIAL
// feed GPS decoder with serial NMEA data from GPS device
while (GPS_Serial.available())

View File

@ -141,7 +141,9 @@ void blink_LED(uint16_t set_color, uint16_t set_blinkduration) {
#if (HAS_LED != NOT_A_PIN) || defined(HAS_RGB_LED)
void ledLoop(void *parameter) {
esp_task_wdt_add(NULL);
while (1) {
esp_task_wdt_reset(); // feed task watchdog
// Custom blink running always have priority other LoRaWAN led
// management
if (LEDBlinkStarted && LEDBlinkDuration) {

View File

@ -343,7 +343,9 @@ uint32_t lora_queuewaiting(void) {
// LMIC loop task
void lmictask(void *pvParameters) {
_ASSERT((uint32_t)pvParameters == 1);
esp_task_wdt_add(NULL);
while (1) {
esp_task_wdt_reset(); // feed task watchdog
os_runloop_once(); // execute lmic scheduled jobs and events
delay(2); // yield to CPU
}

View File

@ -104,6 +104,10 @@ void setup() {
(*((uint32_t volatile *)ETS_UNCACHED_ADDR((DR_REG_RTCCNTL_BASE + 0xd4)))) = 0;
#endif
// task watchdog configuration
//esp_task_wdt_init(1, true);
esp_task_wdt_deinit();
// setup debug output or silence device
#if (VERBOSE)
Serial.begin(115200);