Основная функция сторожевого таймера заключается в том, чтобы при «затягивание» программы, для микроконтроллера это означает что произошло какое-то зависание, произвести его перезагрузку ЦП. Задача, вроде бы, весьма тривиальная, однако в микроконтроллерах ESP8266 данная функция, на мой взгляд, реализуется достаточно кривовато. ESP8266 имеет два сторожевых таймера, один аппаратный, второй – программный. По умолчанию сторожевой таймер включен, т.е. после подачи питания на микросхему он начинает отсчет, после того как он досчитает до заданного значения, происходит перезагрузка. И если ничего не предпринимать, программа не будет работать нормально, периодически перезапускаясь после перезагрузки. Значение, до которого «считает» сторожевой таймер в документации я не нашел, но эксперименты показали, что перезагрузка по программному сторожевому таймеру происходит примерно через 4 сек., по аппаратному, примерно через 7 сек. В мануале по SDK, для работы со сторожевым таймером описаны три функции