• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Fatal exception

Хеллоу!

Новая беда.
Написал очередную програмку.
Вроде, даже работала, но после очередной модернизации стала вылетать.

Есть в этом что-то полезное, или не тратить время на расшифровку?

Код:
Fatal exception 0(IllegalInstructionCause):
epc1=0x402023f4, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

Exception (0):
epc1=0x402023f4 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: sys
sp: 3ffffc30 end: 3fffffb0 offset: 01a0

>>>stack>>>
3ffffdd0:  40106bc8 00d79999 00000000 00000100 
3ffffde0:  ffffffff 00000020 40240000 00000099 
3ffffdf0:  42d80000 43610000 00000000 00000022 
3ffffe00:  3fffc200 40106b90 3fffc258 4000050c 
3ffffe10:  400043a3 00000030 00000019 ffffffff 
3ffffe20:  60000200 00000008 ffffffff 80000000 
3ffffe30:  20000000 3fff1318 80000000 2007c1c0 
3ffffe40:  00000000 3fffc6fc 3ffee518 3fff131c 
3ffffe50:  00000134 0007c1c0 60000600 00000030 
3ffffe60:  00000000 00000000 00000000 401028e2 
3ffffe70:  40102946 0000000e 00000000 40106c16 
3ffffe80:  ffffffff 00000020 00000000 4000050c 
3ffffe90:  00000000 00000000 0000001f 40105331 
3ffffea0:  4000050c 40106b90 3fffc258 4000050c 
3ffffeb0:  40000f68 00000030 0000001c ffffffff 
3ffffec0:  40000f58 00000000 00000020 00000000 
3ffffed0:  00000013 40209428 3ffee518 00000000 
3ffffee0:  ffffffff 3ffe9174 3ffee518 3fffdab0 
3ffffef0:  00000000 3fffdcb0 3ffee558 00000030 
3fffff00:  00000000 400042db 3ffebbe8 60000600 
3fffff10:  40004b31 3fff113c 000002f4 0007c000 
3fffff20:  4010571a 3ffee540 3ffed5e0 40107000 
3fffff30:  40208ef9 3ffed5e0 3ffee540 06af4670 
3fffff40:  3fff113c 00001000 4020938e 00000008 
3fffff50:  00000000 00000000 4020943b 3ffed694 
3fffff60:  3ffee540 017ed439 3ffee518 3ffee540 
3fffff70:  4021ab11 3ffed694 3ffee540 06af32ea 
3fffff80:  4021ab56 3fffdab0 00000000 3fffdcb0 
3fffff90:  3ffee560 3fffdad0 3ffef5a8 402045c7 
3fffffa0:  40000f49 40000f49 3fffdab0 40000f49 
<<<stack<<<

ets Jan  8 2013,rst cause:2, boot mode:(1,6)


ets Jan  8 2013,rst cause:4, boot mode:(1,6)

wdt reset
 
Или вот так:
Код:
Soft WDT reset

ctx: cont
sp: 3fff0080 end: 3fff0280 offset: 01b0

>>>stack>>>
3fff0230:  3fffdad0 00000000 3ffef19c 402020f4 
3fff0240:  3ffef07c feefeffe feefeffe feefeffe 
3fff0250:  feefeffe feefeffe feefeffe 3ffef258 
3fff0260:  3fffdad0 00000000 3ffef250 40202d7f 
3fff0270:  feefeffe feefeffe 3ffef260 40100958 
<<<stack<<<

ets Jan  8 2013,rst cause:2, boot mode:(1,6)


ets Jan  8 2013,rst cause:4, boot mode:(1,6)

wdt reset
 
В поисках глюка прогу сократил до минимума.
Код:
unsigned long Counter =0;
void counterPulse() {
      Counter++;
}
void setup() {
  Serial.begin(115200); //74880);
  delay(10);
  Serial.println("Start setup");
  attachInterrupt(digitalPinToInterrupt(14), counterPulse, RISING); //FALLING); //RISING); //CHANGE);
  Serial.println("End Setup");
}
void loop() {
  delay(10);
}
На 14 ногу подаю импульсы (меандр). Как только скорость импульсов превышает 10имп/сек происходит Fatal exception.
Перед урезанием проги, подключаля к WiFi, брал время с NTP сервера, посылал данные через вебклиента.
Если включить Debug, то после ресета в порт плюётся:
Код:
ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1264, room 16
tail 0
chksum 0x0f
csum 0x0f
~ld
Start setup
End Setup
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 1
cnt

connected with SENS, channel 4
dhcp client start...
ip:10.22.0.35,mask:255.255.255.0,gw:10.22.0.254
pm open,type:2 0
Пока не идут импульсы, ошибка не вываливается. Как только подаю импульсы выскакивает ошибка из первого сообщения. Ошибка выскакивает иногда после 50-го, а иногда после 300-го импульса. :(

Я использую ESP-12E.
 

nikolz

Well-known member
надо вообще луп выкидывать.
На СИ это делается с вызовом одной из трех задач.
Т е вам надо отклик на асинхронное событие это и делается передачей из колбека в задачу либо помещением вашего алгоритма в колбек.
Либо ставьте RTOS.
------------------------------------
андулино это для начинающих универсальных разработчиков мигания светодиодом.
Типа песочницы в детском саду.
можно строить дома из песка.
 
Сверху Снизу