Mehrmals hatte ich einige verdächtige Ausgaben auf dem seriellen Monitor, nachdem ich Code auf das Arduino hochgeladen hatte: wie die ewige Ausgabe von Leerzeichen oder das plötzliche Ausschneiden von Zeichenfolgen oder verschlüsselten Zeichenfolgen.
Da es in der Arduino IDE keinen Kompilierungsfehler oder keine Warnung gab, dachte ich, das Arduino sei defekt, aber nach einigen Tests stellte ich fest, dass nicht alle Arten von Fehlern vom Arduino IDE-Compiler abgefangen werden - insbesondere beim Zuweisen von Variablen in einer Schleife für Array-Strukturen. Dies scheint den Arduino in kurzer Zeit zum Absturz zu bringen.
Wie kann ich Fehler erkennen, die von der Arduino IDE nicht angezeigt werden?
//
. :-(Sieht so aus, als würden Sie hier von Laufzeitfehlern (vom Typ Speicherverlust / Segfault) sprechen.
Es gibt keine Möglichkeit, solche Fehler in bereits geschriebenem Code zu entdecken (es sei denn, Sie kämmen den Code sehr sorgfältig durch). Es ist jedoch recht einfach zu verhindern, dass diese beim Schreiben des Codes auftreten. Seien Sie nur sehr vorsichtig, wenn Sie Schleifen oder rekursive Aufrufe schreiben. Fragen Sie sich "könnte dies außer Kontrolle geraten?". Wenn es so aussieht, als ob dies Spielraum für "außer Kontrolle geraten" ist, schreiben Sie Code, um sich davor zu schützen.
Über Segfaults - überprüfen Sie einfach die Grenzwerte der Array-Indizes und Sie sollten in Ordnung sein. Wenn Sie Zeiger verwenden, gehen Sie bitte vorsichtig mit der Zeigerarithmetik um.
quelle