Eu já vi dois casos agora com o dsPIC 30F4013 em que o controlador estava sendo redefinido devido a uma armadilha indefinida. Por que essas armadilhas foram criadas em primeiro lugar ainda é um mistério, mas essa não é minha pergunta imediata. Estou começando a pensar que seria uma boa prática de programação definir sempre todos os traps, mesmo que nunca ocorram, por isso recebo pelo menos uma mensagem de erro clara em vez de uma redefinição aleatória. Esta é uma prática padrão que eu não conheço? Existem desvantagens dessa prática que devo considerar?
microcontroller
interrupts
reset
firmware
best-practice
Stephen Collings
fonte
fonte
Respostas:
Minha regra informal é:
Mesmo sem essa regra, a folha de dados responde explicitamente à sua pergunta:
( Fonte , seção 8.3, primeira nota)
Como você não pode mascarar armadilhas, deve lidar com elas. Se você não deseja lidar com a armadilha de uma maneira específica, o método apropriado é executar uma
RESET
instrução.fonte
Sim, é uma boa idéia - a única desvantagem é um tamanho extra de código, e você precisa decidir o que fazer com a armadilha (emitir uma mensagem na porta serial? Acender uma luz "FAILED"? Reiniciar silenciosamente? Etc )
fonte