• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Błąd: WiFiClient.cpp:436] read(): fail on fd -1, errno: 11, "No more processes"
#1
Dzień dobry wszystkim, oby dla was ten dzień był lepszy niż dla mnie. Od wczoraj próbuję rozwiązać problem z biblioteką WiFiClient na ESP32, ale po kolei.

Piszę program wykorzystujący wielordzeniowość ESP32. Do łączenia z WiFi używam biblioteki WiFi + WiFiMulti, korzystam także z Blynka. Włączyłem debuggowanie procesora na ESP32 i widzę, że co jakiś czas pojawia się błąd:

Kod:
[E][WiFiClient.cpp:436] read(): fail on fd -1, errno: 11, "No more processes"

W tym momencie następuje zerwanie połączenie z Blynk i następuje ponowne łączenie. Wszystko byłoby OK, ale za którymś razem po pojawieniu się tego błędu ESP się resetuje. 

Oto błąd po resecie:
Kod:
[E][WiFiClient.cpp:436] read(): fail on fd -1, errno: 11, "No more processes"
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400d5950  PS      : 0x00060a30  A0      : 0x800d5d04  A1      : 0x3ffd4290  
A2      : 0x00000000  A3      : 0x3ffd42ef  A4      : 0x00000001  A5      : 0x00000001  
A6      : 0x3ffc1ae4  A7      : 0x0000000b  A8      : 0x00000000  A9      : 0x00000000  
A10     : 0x38ffffed  A11     : 0x400852e0  A12     : 0x00000050  A13     : 0x00000000  
A14     : 0x38ffffed  A15     : 0x00000000  SAR     : 0x0000000a  EXCCAUSE: 0x0000001c  
EXCVADDR: 0x00000008  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffb  

Backtrace: 0x400d5950:0x3ffd4290 0x400d5d01:0x3ffd42b0 0x40149826:0x3ffd42e0 0x400d9975:0x3ffd4310 0x400d99a1:0x3ffd4330 0x400d23bd:0x3ffd4350 0x400d288b:0x3ffd43b0 0x400d290c:0x3ffd43f0 0x400d30b4:0x3ffd4420 0x400d3169:0x3ffd4860 0x400d3186:0x3ffd4880 0x40088f49:0x3ffd48a0

A to zdekodowany błąd:


Kod:
Error
   0x400d5950 WiFiClientRxBuffer
   0x400852e0 _free_r
   : ?? ??:0
   : ?? ??:0
   0x400d5d01 WiFiClient
   0x40149826 WiFiClient
   0x400d9975 Stream
   0x400d99a1 Stream
   0x400d23bd BlynkArduinoClientGen<Client>
   (inlined by) BlynkProtocol<BlynkArduinoClientGen<Client> >
   (inlined by) BlynkProtocol<BlynkArduinoClientGen<Client> >
   0x400d288b BlynkProtocol<BlynkArduinoClientGen<Client> >
   0x400d290c BlynkProtocol<BlynkArduinoClientGen<Client> >
   0x400d30b4 void BlynkApi<BlynkProtocol<BlynkArduinoClientGen<Client> > >
   0x400d3169 LapmClass
   0x400d3186 turnOffByTimeFun(void*)
   :355 (discriminator 1):::0x40088f49:vPortTaskWrapper
   : ?? ??:0
   : ?? ??:0
   : ?? ??:0

Nie bardzo wiem jak odczytać te informacje o błędzie, co powoduje, że nawet nie wiem w którym miejscu dokładnie szukać problemu. Czy byłby mi ktoś w stanie wskazać, która funkcja powoduje restart ESP? 

Będę na prawdę wdzięczny Smile
 
Odpowiedź
#2
Problem prawdopodobnie został zażegnany. Gdyby ktoś napotkał podobny problem radzę zmienić:

Kod:
if (wifiMulti.run() == WL_CONNECTED) {
                if (Blynk.connected()) {
                    Blynk.run();
                }
                else {
                    Blynk.connect();
                    Serial.println("Wywoluje Blynk.connect();");
                    delay(8000);

                }
            }

Na:

Kod:
if (Blynk.connected()) {
            Blynk.run();
        }
        else{
            if (wifiMulti.run() == WL_CONNECTED) {
                if (Blynk.connected()) {
                    Blynk.run();
                }
                else {
                    Blynk.connect();
                    Serial.println("Wywoluje Blynk.connect();");
                    delay(8000);

                }
            }
        }
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości