случайный программный сброс wdt при запросе

Я делаю почтовые запросы с помощью esp8266 на nodeMCU. у меня беспорядочный код, поэтому я не хочу раздражать вас, показывая его здесь. проблема в том, что я время от времени получаю программный сброс wdt при выполнении запроса. например, я меняю часть кода (удаляю или добавляю несколько строк serial.println) и вижу, что получаю программный сброс wdt прямо здесь, в http.post.

я изо всех сил старался избегать строк. Я использовал только несколько раз, без в петле. Я использую WiFiClientSecureBearSSL только с FirebaseESP8266.

есть ли у вас какие-либо идеи, в чем причина этой проблемы?

, 👍1

Обсуждение

Как вы питаете плату?, @Majenko

с USB. я не использую без кабеля, но я все еще имею дело с этими сбросами., @alphaceph

Подключен ли ваш компьютер напрямую? Не через обесточенный концентратор?, @Majenko

Подключается напрямую к usb порту. Почему с ним что-то не так?, @alphaceph

Нет. Как раз наоборот. Я видел тайм-ауты WDT, когда плата была недостаточно запитана, но здесь это не так., @Majenko

ага. моя проблема здесь больше похожа на случайность. я получаю сброс wdt по разным запросам. я думал, может быть, стек или куча достигают друг друга, но это не связано с программным сбросом wdt, не так ли?, @alphaceph

Именно случайность заставила меня задуматься о силе. Но это маловероятно. Тайм-аут сторожевого таймера может быть вызван чем угодно, кроме того, что выполнение может пойти не так., @Majenko

Может ли использование строк несколько раз вызвать фрагментацию памяти? Размер этих строк меньше 100 символов., @alphaceph


1 ответ


3

Покажите примеры ошибок — и установите декодер ESPexeption для анализа трассировки стека, это как минимум покажет, почему был вызван wdt
Так что единственное, что я могу порекомендовать на данный момент
Возникла проблема с bearssl:

Это ошибка WDT, вызванная расширенным согласованием SSL.

  • Измените частоту ядра на 160 МГц (если это еще не сделано) и повторите попытку.
  • Используйте в своей программе вместо LWIP1.4 (потребление памяти) LWIP2.0 с низким объемом памяти.
  • Поскольку согласование SSL может занять 5 секунд даже при частоте 160 МГц для некоторых веб-сайтов, обязательно добавьте yield(), чтобы не вызвать сброс wdt.

Поэтому без кода/трассировки и сообщений об ошибках сложно догадаться

,