J'ai vu deux cas avec dsPIC 30F4013 où le contrôleur était en train de se réinitialiser en raison d'un piège non défini. Pourquoi ces pièges ont été levés en premier lieu est toujours un mystère, mais ce n'est pas ma question immédiate. Je commence à penser que ce serait une bonne pratique de programmation de toujours définir tous les pièges, même si les pièges ne devraient jamais se produire, donc j'obtiens au moins un message d'erreur clair au lieu d'une réinitialisation aléatoire. Est-ce une pratique standard que je ne connais pas? Y a-t-il des inconvénients à cette pratique que je devrais considérer?
microcontroller
interrupts
reset
firmware
best-practice
Stephen Collings
la source
la source
Réponses:
Ma règle informelle est:
Même sans cette règle, la fiche technique répond explicitement à votre question:
( Source , section 8.3, première note)
Étant donné que vous ne pouvez pas masquer les pièges, vous devez les manipuler. Si vous ne souhaitez pas traiter le piège d'une manière particulière, la méthode appropriée consiste à exécuter une
RESET
instruction.la source
Oui, c'est une bonne idée - le seul inconvénient est un peu de taille de code supplémentaire, et vous devez décider quoi faire avec le piège (émettre un message sur le port série? Allumer un voyant "FAILED"? Redémarrer en silence? Etc. )
la source