Я видел два случая с dsPIC 30F4013, когда контроллер сбрасывался из-за неопределенной ловушки. Почему эти ловушки поднимались в первую очередь, до сих пор остается загадкой, но это не мой непосредственный вопрос. Я начинаю думать, что было бы хорошей практикой программирования всегда определять все ловушки, даже если ловушки никогда не должны возникать, поэтому я получаю хотя бы четкое сообщение об ошибке вместо случайного сброса. Это стандартная практика, о которой я не знаю? Есть ли недостатки в этой практике, которые я должен рассмотреть?
microcontroller
interrupts
reset
firmware
best-practice
Стивен Коллингс
источник
источник
Ответы:
Мое неофициальное правило:
Тем не менее, даже без этого правила, лист данных явно отвечает на ваш вопрос:
( Источник , раздел 8.3, первое примечание)
Учитывая, что вы не можете замаскировать ловушки, вы должны справиться с ними. Если вы не хотите иметь дело с ловушкой определенным образом, соответствующий метод - выполнить
RESET
инструкцию.источник
Да, это хорошая идея - единственным недостатком является немного дополнительного размера кода, и вам нужно решить, что делать с ловушкой (выдать сообщение на последовательный порт? Включить индикатор "СБОЙ"? Тихая перезагрузка? И т. Д. )
источник