Инструменты пользователя

Инструменты сайта


ob:o7:debug

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ob:o7:debug [2017/04/06 23:12]
иван_денисов [Пример отладчика]
ob:o7:debug [2020/10/29 07:08] (текущий)
Строка 59: Строка 59:
  
  
-===== Пример отладчика=====+===== Пример отладчика =====
  
 Чтобы осуществлять отладку микроконтроллера необходимо обмениваться сообщениями. Более подробно организация обмена описана в заметке [[ob:o7:trimble|Обмен сообщениями с контроллером]]. Чтобы осуществлять отладку микроконтроллера необходимо обмениваться сообщениями. Более подробно организация обмена описана в заметке [[ob:o7:trimble|Обмен сообщениями с контроллером]].
Строка 205: Строка 205:
  
 Чтобы перейти к положению ошибки в модуле, удобно воспользоваться инструментом **O7->Position**. Чтобы перейти к положению ошибки в модуле, удобно воспользоваться инструментом **O7->Position**.
 +
 +
 +===== Сторожевой таймер =====
 +
 +Чтобы определить, когда микроконтроллер «завис» в бесконечном цикле, полезным инструментом является сторожевой таймер **MicroARMv7MSTM32F4WWDG** ([[https://github.com/aixp/O7/blob/master/Micro/Files/STM32F4IWDG.odc|github]]).
 +
 +Чтобы его использовать, сначала необходимо выполнить процедуру **Init**, и затем периодически вызывать процедуру **Update**. Тогда, при «зависании» микроконтроллера сработает **аварийная остановка с кодом 20**, и возможно определить место в программе, где это произошло (**Traps.trap.pc**)
 +
 +Более универсальный сторожевой таймер не имеет возможности определения места остановки: **MicroSTM32FxIWDG** ([[https://github.com/aixp/O7/blob/master/Micro/Files/STM32FxIWDG.odc|github]]). Но зато он работает на любых типах микроконтроллеров моделей STM32F.
 +
 +
 +----
 +
 +Авторы заметки: [[http://iadenisov.ru|И. А. Денисов]], А. В. Ширяев
  
ob/o7/debug.1491509543.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)