ESP32 - debugovanie

ESP32 - debugovanie
« kdy: 09. 06. 2021, 22:57:36 »
Ahojte robím na jednej appke pre ESP32, appka sa mi dosť rozrástla, ale teraz som ju prepísal aby podporovala viac rovnakých senzorov naraz. Appka normálne naštartuje ale potom mi tam niečo spadne.

Kód: [Vybrat]
"abort() was called at PC 0x4015c4df on core 1

ELF file SHA256: 0000000000000000

Backtrace: 0x4008d83c:0x3ffd3de0 0x4008dab5:0x3ffd3e00 0x4015c4df:0x3ffd3e20 0x4015c526:0x3ffd3e40 0x4015bbff:0x3ffd3e60 0x4015cb0b:0x3ffd3e80 0x400d2051:0x3ffd4130 0x400d4577:0x3ffd4150 0x400d3577:0x3ffd41d0 0x400dc991:0x3ffd4210 0x400da75d:0x3ffd4250 0x400da825:0x3ffd4290 0x400daa79:0x3ffd42e0 0x4015e0dd:0x3ffd4300 0x4015e159:0x3ffd4340 0x4015e80e:0x3ffd4360 0x4008eaba:0x3ffd4390

Rebooting..."

Myslím že z tejto chybovej "hlášky" mi asi nikto nebude vedieť pomôcť. Preto by som to rád nejako oddebugoval. Na vývoj pre microcontrollery používam IDE PlatformIO ,lenže pre každý microcontroller tam treba rozbehnúť extra debugger. Pozeral som články o debugovaní pre ESP32, ale pri každom riešení pre čo som našiel musím k debugovaniu použiť programátor (ESP32 Prog):

https://www.amazon.de/-/en/ESP-Prog-Development-Programme-Downloader-Compatible/dp/B08MZK7YWP

Už som jeden objednal, ale appku by som rád vydebugoval skôr, ako mi ten programátor príde domov. Neviete či sa ESP nedá debugovať nejako aj bez neho? Alebo ako mám odhaliť príčinu problému? Appka používa vlákna a knižnice tretích strán, takže nájsť miesto kde nastal problém je ako hladať ihlu v kope sena. Možno pokročilejší uživatelia by sa vedeli zorientovať aj podľa toho backtrace? No pre mňa ako BFU sú to len ničnehovoriace čísla.
« Poslední změna: 10. 06. 2021, 08:32:38 od Petr Krčmář »


Re:ESP32 - debugovanie
« Odpověď #1 kdy: 09. 06. 2021, 23:57:50 »

Re:ESP32 - debugovanie
« Odpověď #2 kdy: 10. 06. 2021, 12:26:44 »
Bohužel, krom zmíněného dekódování adres, to pro nativní kód bez JTAG nejde.

Jinak z pohledu spolehlivosti doporučuji se držet Single-Resposibility Principle i pro IoT - tedy mít na jednom HW jen to, co skutečně potřebuje, a mít naopak víc zařízení pro různé účely (což neznamená, že to děláte špatně, jen lidi mají občas tendenci na jeden microcontroller nebo RPi pověsit celou domácnost).

Re:ESP32 - debugovanie
« Odpověď #3 kdy: 10. 06. 2021, 16:10:40 »
Bohužel, krom zmíněného dekódování adres, to pro nativní kód bez JTAG nejde.

Jinak z pohledu spolehlivosti doporučuji se držet Single-Resposibility Principle i pro IoT - tedy mít na jednom HW jen to, co skutečně potřebuje, a mít naopak víc zařízení pro různé účely (což neznamená, že to děláte špatně, jen lidi mají občas tendenci na jeden microcontroller nebo RPi pověsit celou domácnost).

Rieši to jeden problém. Je tam jeden mikrokontroller, jedno relé, ktoré má spínať 4 obvody a k tomu 4 pumpy a 4 senzory. Predávalo sa to ako 1 sada, pre 4 rastliny. (neskôr možno skúsim aj viac rastlín).  Keby som tam dal namiesto jedného ESP, 4 ESPčka, tak by sa cena zariadenia zvýšla o 21 euro a načo by to bolo dobré? Iba by sa to celé skomplikovalo.

Re:ESP32 - debugovanie
« Odpověď #4 kdy: 10. 06. 2021, 21:02:02 »
Fixol som to, bola to veľmi hlúpa chyba, dostal som sa mimo rozsah kontaineru. V klientskej apke som mal totiž iný počet rastlín ako na ESPčku.