Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2754
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

24. Продвинутые методы отладки

В Главе 5 мы начали анализ основных инструментов и методов отладки микропрограммы, выполняемой на целевом микроконтроллере. Мы изучили некоторые важные возможности Eclipse, такие как точки останова и пошаговая отладка, которые помогают понять, что не так с нашим кодом. Кроме того, мы глубоко проанализировали, как работает полухостинг ARM – метод, использующий инструкцию bkpt ассемблера ARM для передачи управления отладчику, чтобы данные могли передаваться из микроконтроллера в отладчик OpenOCD и наоборот. Данная возможность чрезвычайно полезна, особенно если наше устройство не предоставляет интерфейс UART под эти цели или если мы хотим использовать некоторые возможности, которые было бы слишком сложно выполнить на недорогих встроенных архитектурах. Однако этих методов может быть недостаточно для отладки реальных приложений. Все может пойти не так, как надо, и довольно распространенна необходимость в специализированных и зачастую дорогих аппаратных средствах для лучшей отладки наших встроенных приложений.

Цель данной главы – познакомить читателя с некоторыми продвинутыми возможностями отладки, предлагаемыми микроконтроллерами на базе Cortex-M. Наконец, представлена роль исключений Cortex-M, показывающая, как декодировать некоторые соответствующие регистры ядра, которые могут предоставить действительно полезную информацию об источнике исключений. В этой главе также дается краткое введение в возможности ARM CoreSight™, реализованные в микроконтроллерах Cortex-M3/4/7, – отличительной технологии ARM, которая позволяет выполнять трассировку операций микроконтроллера в режиме реального времени с использованием внешнего отладчика.

Данная глава не ограничивается низкоуровневыми методами отладки. Мы также увидим в действии некоторые другие возможности, предлагаемые инструментарием GNU

MCU Eclipse, такие как отладочные выражения (debug expressions) и Keil Packs, и проанали-

зируем функции, предлагаемые CubeHAL, для улучшения управления ошибками и оптимизации процесса отладки.

В идеальном мире данная глава появилась бы сразу после Главы 5. Информация, о которой здесь сообщается, важна для эффективной отладки на ранних этапах работы с платформой STM32. К сожалению, чтобы освоить концепции, показанные в этой главе, вам необходимо изучить несколько других тем, прежде чем вы сможете глубоко понять показанные здесь методы и инструменты. По своему опыту, автор книги предлагает прочитать хотя бы Главы 7 и 201, прежде чем приближаться к этой.

1 В данном месте в оригинале книги указаны Главы 7 и 15. В текущем выпуске книги (0.26) Глава 15 повествует об интерфейсе SPI и не имеет никакого отношения к темам этой главы. Учитывая то, что главы книги публиковались постепенно и не по порядку, скорее всего при добавлении новых глав автор забыл исправить эту запись. Глава 20 выпуска книги 0.26 уместнее Главы 15 в этом контексте. (прим. переводчика)