Я делаю некоторую разработку на C с чипом STM32F107, и в какой-то момент устройство начинает сбрасываться, когда я вызываю определенную функцию. У меня нет отладчика, и моя отладка - это просто текст через последовательный порт.
Я использовал некоторые другие микроконтроллеры, в которых я смог получить доступ к регистру, чтобы увидеть причину перезагрузки, но я не могу найти эквивалент для этого устройства. Я знаю об аппаратных исключениях Cortex-M3, но я не знаю, запускается ли один из них, поскольку я не могу отправить текст поверх usart, когда я внутри этих обработчиков (возможно, потому, что мой TX функции используют прерывания?).
Итак, я решил попросить людей с большим опытом, чем я в этом устройстве: что обычно делается для отладки таких ситуаций?
РЕДАКТИРОВАТЬ
Один из разработчиков активировал сторожевой таймер WWDG, и он переписывал оборудование, прежде чем я смог получить информацию от обработчиков ошибок. Это был Hard Fault из-за вызова функции указателем, который указывал на неправильное место. Тем не менее, я буду держать этот вопрос в надежде, что кто-то даст более подробную информацию (или материал об этом), чтобы указать на код C из регистров, сохраненных в, скажем, Hard Fault (идея @dwelch).