elbear_arduino_bsp/docs/debug_description.md

7.6 KiB
Raw Blame History

Режим отладки в ArduinoIDE 2

Начиная с версии пакета 0.5.0 для всех плат, входящих в состав пакета, доступен режим отладки скетчей. Для отладки плат ELBEAR ACE-UNO, ELBEAR ACE-NANO, ELSOMIK понадобится программатор ELJTAG. Плата START-MIK32 содержит встроенный программатор, для использования которого необходимо передвинуть переключатель режима программатора на плате в положение JTAG.
Режим отладки доступен в ArduinoIDE версии 2 и выше.

Предварительная подготовка

Для отладки в Arduino IDE используется плагин Cortex-Debug. По умолчанию в IDE установлена версия плагина 1.5.1, но с указанной версией режим отладки для плат из состава пакета работает некорректно. Для корректной работы отладки необходимо установить более новую версию плагина. Архив, содержащий небходимую версию Cortex-Debug и все его зависимости, можно найти в дополнительных материалах к релизу. Для подготовки к работе в режиме отладки необходимо сделать следующее:

  • Установить драйвера для работы с программатором, если ранее они не были установлены. Подробности можно найти в инструкции по первому запуску платы ELBEAR ACE-UNO или в документации по запуску платы START-MIK32.
  • Скачать архив с плагином по ссылке.
  • Содержимое архива переместить в папку plugins в папке с установленной ArduinoIDE. Примерный путь - C:\Program Files\Arduino IDE\resources\app\plugins. Содержимое архива (несколько файлов с расширением .vsix) разместить в указанной папке, не создавая промежуточных папок.
  • Запустить ArduinoIDE и по инструкции, описанной ниже, запустить режим отладки.
  • Удостовериться, что при запуске отладки в первой строке консоли отладки отображается нужная версия плагина - 1.12.1: Cortex-Debug: VSCode debugger extension version 1.12.1 git(652d042). Usage info: https://github.com/Marus/cortex-debug#usage
  • При возникновении сложностей с вопросами можно обратиться в телеграмм-канал компании.

Запуск отладки

Последовательность действий для запуска режима отладки:

  1. В ArduinoIDE открыть скетч, который необходимо запустить в режиме отладки.
  2. Выбрать нужную плату - Инструменты -> Плата.
  3. Подключить плату к ПК через программатор. Для плат ELBEAR ACE-NANO, ELSOMIK использовать ELJTAG. На плате START-MIK32 передвинуть переключатель режима программатора в положение JTAG.
  4. В ArduinoIDE выбрать используемый программатор - Инструменты -> Программатор -> mik32 uploader.
  5. Активировать оптимизацию для отладки при сборке скетча - Скетч -> Оптимизировать для отладки. Если отладку запустить без указанной оптимизации, при пошаговом прохождении скетча могут возникнуть проблемы, например, с "перепрыгиванием" лишних строк кода.
  6. Скомпилировать скетч - Скетч -> Проверить/Скомпилировать.
  7. Загрузить скетч на плату. Загружать скетч можно как по USB (Скетч -> Загрузить на плату), так и через программатор (Скетч -> Загрузить на плату при помощи программатора).
    ! При запуске отладки скетч не компилируется и не загружается на плату автоматически. Поэтому при внесении изменений в код необходимо вручную повторять пункты 6,7 перед запуском отладки.
  8. Открыть панель отладочника в меню слева:
    Debug_panel.PNG
    После запуска отладки здесь будут доступны к просмотру стек вызовов функций, значения переменных, установленные точки остановы, а также состояние периферийных регистров микроконтроллера.
  9. Для запуска отладки нажать кнопку Начать отладку в верхней части экрана:
    Debug_start.PNG
    При этом:
    • откроется новый терминал gdb-server, в котором запустится программа openocd. Терминал отображает статус соединения с микроконтроллером.
    • запустится режим отладки, а курсор выполнения программы остановится в начале функции setup().
    • станут активны кнопки пошагового перемещения по программе.
    • в стеке вызовов и в разделе состояния переменных появится новая информация.
  10. Для просмотра отладочной информации можно запустить консоль отладки. Для этого на панели отладки нужно нажать соответствующую кнопку:
    Debug_console.PNG

В отладке доступно:

  • отладочная информация в консоли отладки
  • пошаговое исследование кода
  • выполнение кода до точки останова (доступно только 2 точки)
  • отслеживание состояния указанных переменных
  • просмотр состояния периферийных регистров микроконтроллера
  • просмотр состояния служебных регистров (и регистров из архитектуры)
  • просмотр стека вызовов при паузе