In den letzten Jahren haben wir einige kleinere Überarbeitungen an unserer Leiterplatte vorgenommen, darunter
Was wir oft festgestellt haben, ist, dass wir unsere Software nach jeder dieser Überarbeitungen optimieren mussten, obwohl sich diese Änderungen nicht wirklich auf die eingebettete Software auswirken sollten.
Einige Hardware-Revisionen brachten eine Instabilität mit sich, die erst nach Tagen / Wochen / Monaten auftauchte (z. B. die Unfähigkeit, eine bestimmte Komponente auf der Platine umzuschalten).
Wir mussten High/Low-Sequenzen und Timeouts für serielle Leitungen optimieren
Das große Problem ist, dass diese Probleme nicht sofort auftauchen, sondern manchmal Wochen/Monate dauern, bevor sie auftauchen, was es schwierig macht, Korrekturmaßnahmen durchzuführen (insbesondere, wenn eines der Probleme darin besteht, dass das Modem nicht umgeschaltet werden kann ein Firmware-Update durchführen).
Gibt es Richtlinien/Best Practices, um dieses Risiko zu eliminieren? (Eine Art Stresstestverfahren / Dinge, die wir bei solchen Überarbeitungen berücksichtigen müssen?
Die „Best Practice“ hier heißt Regressionstest . Einfach ausgedrückt, Sie möchten eine Reihe von Tests haben, die
Die zweite Anforderung ist wichtig, wenn Sie intermittierende Probleme erkennen möchten, die erst nach einiger Zeit auftreten. Wenn der Test manuell ist, können Sie ihn ein paar Mal ausführen. Wenn der Test hochgradig automatisiert ist, können Sie ihn rund um die Uhr einige Tage lang wiederholt ausführen und unregelmäßige Ereignisse erkennen, die nicht jedes Mal auftreten (z. B. Ausfälle beim Umschalten der Stromversorgung).
Es ist normalerweise auch eine gute Idee, einen Belastungstest einzubauen, der die maximale CPU-Zeit / Speicherplatz / Kommunikationsbandbreite / elektrische Leistung verwendet.
Wenn das Testen ein Problem für Ihr Team darstellt, sollten Sie schließlich ein System mit höheren Toleranzen entwerfen. Schließen Sie ein Netzteil ein, das 50-100 % zusätzliche Leistung liefern kann. Wenn Sie eine MCU haben, stellen Sie sicher, dass Ihr Stack nie zu mehr als 50 % seiner Kapazität verwendet wird und die CPU mindestens 50 % der Zeit im Leerlauf ist. Das wird das Risiko natürlich nicht eliminieren, aber deutlich reduzieren.
PlasmaHH
Eugen Sch.
ddewaele
Eugen Sch.
JRE
PlasmaHH
b degnan
Dmitri Grigorjew