Ich führe mit dem ESP32 ein paar CPU-intensive Anweisungen aus. Da
bleibt es ebenfalls nicht aus, dass hier und da eine Watchdog Meldung
kommt, a la
1 | Task watchdog got triggered. The following tasks did not feed the watchdog in time:
|
2 | - IDLE (CPU 0)
|
3 | Tasks currently running:
|
4 | CPU 0: wifi
|
5 | CPU 1: IDLE
|
Die Sache ist folgendes: Ich gebe mehrere riesige Arrays aus, jeden
Index als Hexadezimal. Sobald einer durchläuft kommt auch schon der
nächste Array. Sporadisch wird dann der watchdog getriggert und grätscht
mir in den aktuell ausgegebenen Index rein. Man kann sich das nun so
vorstellen:
1 | E0 60Task watchdog got triggered. The following tasks did not feed the watchdog in time:
|
2 | - IDLE (CPU 0)
|
3 | Tasks currently running:
|
4 | CPU 0: wifi
|
5 | CPU 1: IDLE
|
6 | 66 64 AD
|
Wenn ich nun die Meldung entferne ist die Ausgabe korrekt (E0 60 66 64
AD), es werden also keine Indizes übersprungen. Nun möchte ich, sobald
diese Meldung kommt, dass diese automatisch entfernt wird. Also nach
jedem ausgegebenen Index nach einem Pattern gesucht wird.
Die Array Ausgabe kann man sich so vorstellen:
1 | for (int i = 0; i < sizeof(my_array); i++) {
|
2 | printf(" %02X", my_array[i]);
|
3 | //Pruefen nach Watchdog und ggf entfernen
|
4 | }
|