Ich habe jetzt zwei Fälle mit dsPIC 30F4013 gesehen, in denen der Controller aufgrund einer undefinierten Falle zurückgesetzt wurde. Warum diese Fallen überhaupt aufgetaucht sind, ist immer noch ein Rätsel, aber das ist nicht meine unmittelbare Frage. Ich fange an zu denken, dass es eine gute Programmierpraxis wäre, immer alle Traps zu definieren, auch wenn Traps niemals auftreten sollten, sodass ich zumindest eine eindeutige Fehlermeldung anstelle eines zufälligen Zurücksetzens erhalte. Ist dies eine Standardpraxis, die ich nicht kenne? Gibt es Nachteile bei dieser Vorgehensweise, die ich berücksichtigen sollte?
microcontroller
interrupts
reset
firmware
best-practice
Stephen Collings
quelle
quelle
Antworten:
Meine informelle Regel lautet:
Auch ohne diese Regel beantwortet das Datenblatt Ihre Frage explizit:
( Quelle , Abschnitt 8.3, erste Anmerkung)
Da Sie keine Fallen maskieren können, müssen Sie mit ihnen umgehen. Wenn Sie die Falle nicht auf bestimmte Weise behandeln möchten, müssen Sie eine
RESET
Anweisung ausführen .quelle
Ja, es ist eine gute Idee - der einzige Nachteil ist die zusätzliche Codegröße, und Sie müssen entscheiden, was mit der Falle geschehen soll (eine Meldung über die serielle Schnittstelle ausgeben? Eine "FAILED" - Anzeige einschalten? Stiller Neustart usw.) )
quelle