Как отладить неожиданные сбросы в устройстве STM32?

Я занимаюсь разработкой на C с чипом STM32F107, и в какой-то момент устройство начало сбрасывать, когда я вызываю конкретный функция. У меня нет отладчика, и моя отладка - это просто текст через последовательный порт.

Я использовал некоторые другие микроконтроллеры, в которых мне удалось получить доступ к регистру, чтобы увидеть причину сброса, но я не могу найти эквивалента для этого устройства.Мне известно об аппаратных исключениях Cortex-M3, но я не знаю, срабатывает ли одно из них, поскольку я не могу отправлять текст через usart, когда нахожусь внутри этих обработчиков (возможно, потому что мой TX функции используют прерывания?).

Итак, я решил спросить людей с большим опытом, чем я в этом устройстве: что обычно делается для отладки подобных ситуаций?

РЕДАКТИРОВАТЬ

Один из разработчиков активировал сторожевой таймер WWDG, и он перезагружал оборудование прежде чем я смог получить информацию от обработчиков ошибок. Это была серьезная ошибка из-за вызова функции указателем, который указывал не на то место. Тем не менее, я оставлю этот вопрос в надежде, что кто-то предоставит более подробную информацию (или материал об этом) для указания на код C из регистров, сохраненных, скажем, в Hard Fault (идея @dwelch).

12
задан ivarec 7 September 2012 в 04:58
поделиться