# Режим отладки в ArduinoIDE 2 Начиная с версии пакета 0.5.0 для всех плат, входящих в состав пакета, доступен режим отладки скетчей. Для отладки плат ELBEAR ACE-UNO, ELBEAR ACE-NANO, ELSOMIK понадобится программатор [ELJTAG](https://elron.tech/eljtag-programmator-risc-v-mcu/). Плата START-MIK32 содержит встроенный программатор, для использования которого необходимо передвинуть переключатель режима программатора на плате в положение `JTAG`. Режим отладки доступен в ArduinoIDE версии 2 и выше. # Предварительная подготовка Для отладки в Arduino IDE используется плагин Cortex-Debug. По умолчанию в IDE установлена версия плагина 1.5.1, но с указанной версией режим отладки для плат из состава пакета работает некорректно. Для корректной работы отладки необходимо установить более новую версию плагина. Архив, содержащий небходимую версию Cortex-Debug и все его зависимости, можно найти в дополнительных материалах к релизу. Для установки плагина необходимо сделать следующее: * Скачать архив с плагином по [ссылке](!ССЫЛКА). * Содержимое архива переместить в папку `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` * При возникновении сложностей с вопросами можно обратиться в [телеграмм-канал компании](https://t.me/elrontech). # Запуск отладки Установить галочку Оптимизация для отладки Собрать проект, загрузить скетч Запустить режим отладки, нажав кнопку, картинка В отладке доступно: - отладочная информация в консоли отладки - пошаговое исследование кода - выполнение кода до точки останова (доступно только 2 точки) - отслеживание состояния указанных переменных - просмотр состояния периферийных регистров микроконтроллера - просмотр состояния служебных регистров (и регистров из архитектуры) - просмотр стека вызовов при паузе