Ты на кота в трубе повлияй. Он провоцирует на бессмысленный бред
Konstantin
Господа, помогите разобраться со стек-трейсом падающей 8266.
Soft WDT reset
>>>stack>>>
ctx: cont
sp: 3ffffdc0 end: 3fffffc0 offset: 01a0
3fffff60: 1802112c 0000002c 00000055 40201c77
3fffff70: 402015e1 00000055 0000002c 402015c0
3fffff80: 000000ee 0000002c 00000001 401002a0
3fffff90: 3fffdad0 00000000 3ffe85e0 3ffeeaf8
3fffffa0: 3fffdad0 00000000 3ffe85e0 40203242
3fffffb0: feefeffe feefeffe feefeffe 4010137d
<<<stack<<<
Результат работы декодера:
0x40201c77 in HardwareSerial::available() at C:\Users\OTRIUM\.platformio\packages\framework-arduinoespressif8266\cores\esp8266/HardwareSerial.cpp:107
0x402015e1 in loop at src/main.cpp:142
0x402015c0 in loop at src/main.cpp:139
0x401002a0 in ets_post at C:\Users\OTRIUM\.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_main.cpp:181
0x40203242 in loop_wrapper() at C:\Users\OTRIUM\.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_main.cpp:201
0x4010137d in cont_wrapper at C:\Users\OTRIUM\.platformio\packages\framework-arduinoespressif8266\cores\esp8266/cont.S:81
Я правильно понимаю, что всё падает на 139 строке main.cpp (по какой-то причине срабатывает вотчдог), а последние 3 строки в трассировке это уже попытка ESPшки обработать произошедший exception?
Посмотрел main, у меня в этом месте os_delay_us(100), обёрнутый в while loop, считающий до 20 (или завершающийся раньше по условию).
Вероятно, из-за того, что никто не сбрасывает собаку, она сбрасывает ESPшку.
Я так понимаю, у меня есть 3 варианта:
1. Пинать собаку внутри цикла (на каждой итерации)
2. Отключить её перед циклом, затем включить обратно.
3. Использовать функцию задержки, которая сама сбрасывает вотчдог (если такая существует?)