Watchdog timer implementation
Posted: Fri Jun 07, 2019 1:26 am
I am trying to understand the implementation of Watchdog timers in ESP32 Micropython.
Based on ESP-IDF documentation , there are two WDT.
I have done some experimenting with Micropython pre-built firmware.
It appears that Micropython has some ties to FreeRTOS WDT, will reset the system if IRQ's are disabled.
However, I can not find more specific information on how ESP32 Micropython (pre-built firmware) works with underlying FreeRTOS Watchdog timers and implication on Micropython applications.
I need to build a robust system that will reset reliably in case of Micropython application or any other underlying OS lockups.
Would appreciate more information and clarification as I'm sure would others.
Best Regards
Based on ESP-IDF documentation , there are two WDT.
https://docs.espressif.com/projects/esp ... /wdts.htmlThe ESP-IDF has support for two types of watchdogs: The Interrupt Watchdog Timer and the Task Watchdog Timer (TWDT). The Interrupt Watchdog Timer and the TWDT can both be enabled using make menuconfig, however the TWDT can also be enabled during runtime. The Interrupt Watchdog is responsible for detecting instances where FreeRTOS task switching is blocked for a prolonged period of time. The TWDT is responsible for detecting instances of tasks running without yielding for a prolonged period.
I have done some experimenting with Micropython pre-built firmware.
It appears that Micropython has some ties to FreeRTOS WDT, will reset the system if IRQ's are disabled.
However, I can not find more specific information on how ESP32 Micropython (pre-built firmware) works with underlying FreeRTOS Watchdog timers and implication on Micropython applications.
I need to build a robust system that will reset reliably in case of Micropython application or any other underlying OS lockups.
Would appreciate more information and clarification as I'm sure would others.
Best Regards