add some task watchdog handling
This commit is contained in:
parent
ad027f7e80
commit
13eaae74ac
@ -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>
|
||||
|
@ -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())
|
||||
|
@ -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) {
|
||||
|
@ -343,9 +343,11 @@ uint32_t lora_queuewaiting(void) {
|
||||
// LMIC loop task
|
||||
void lmictask(void *pvParameters) {
|
||||
_ASSERT((uint32_t)pvParameters == 1);
|
||||
esp_task_wdt_add(NULL);
|
||||
while (1) {
|
||||
os_runloop_once(); // execute lmic scheduled jobs and events
|
||||
delay(2); // yield to CPU
|
||||
esp_task_wdt_reset(); // feed task watchdog
|
||||
os_runloop_once(); // execute lmic scheduled jobs and events
|
||||
delay(2); // yield to CPU
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user