Обновить docs/debug_description.md

This commit is contained in:
klassents 2025-03-11 09:15:57 +03:00
parent 1c26fe5e5f
commit 0309195bb5

View File

@ -4,11 +4,11 @@
Режим отладки доступен в ArduinoIDE версии 2 и выше.
# Предварительная подготовка
Для отладки в Arduino IDE используется плагин Cortex-Debug. По умолчанию в IDE установлена версия плагина 1.5.1, но с указанной версией режим отладки для плат из состава пакета работает некорректно. Для корректной работы отладки необходимо установить более новую версию плагина. Архив, содержащий небходимую версию Cortex-Debug и все его зависимости, можно найти в дополнительных материалах к релизу.
Для отладки в Arduino IDE используется плагин Cortex-Debug. По умолчанию в IDE установлена версия 1.5.1, но с указанной версией режим отладки для плат из состава пакета работает некорректно. Для корректной работы необходимо установить более новую версию плагина. Архив, содержащий небходимую версию Cortex-Debug и все его зависимости, можно найти в дополнительных материалах к релизу.
Для подготовки к работе в режиме отладки необходимо сделать следующее:
* Установить драйвера для работы с программатором, если ранее они не были установлены. Подробности можно найти в [инструкции](https://elron.tech/wp-content/uploads/2024/05/instrukcija-po-pervomu-zapusku.pdf) по первому запуску платы ELBEAR ACE-UNO или в [документации](https://wiki.mik32.ru/%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B0_%D0%A1%D1%82%D0%B0%D1%80%D1%82) по запуску платы START-MIK32.
* Скачать архив с плагином по [ссылке](!ССЫЛКА).
* Содержимое архива переместить в папку `plugins` в папке с установленной ArduinoIDE. Примерный путь - `C:\Program Files\Arduino IDE\resources\app\plugins`. Содержимое архива (несколько файлов с расширением `.vsix`) разместить в указанной папке, не создавая промежуточных папок.
* Содержимое архива переместить в папку `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`
@ -18,31 +18,24 @@
Последовательность действий для запуска режима отладки:
1. В ArduinoIDE открыть скетч, который необходимо запустить в режиме отладки.
2. Выбрать нужную плату - `Инструменты -> Плата`.
3. Подключить плату к ПК через программатор. Для плат ELBEAR ACE-NANO, ELSOMIK использовать ELJTAG. На плате START-MIK32 передвинуть переключатель режима программатора в положение `JTAG`.
3. Подключить плату к ПК через программатор. Для плат ELBEAR ACE-UNO, ELBEAR ACE-NANO, ELSOMIK использовать ELJTAG. На плате START-MIK32 передвинуть переключатель режима программатора в положение `JTAG`.
4. В ArduinoIDE выбрать используемый программатор - `Инструменты -> Программатор -> mik32 uploader`.
5. Активировать оптимизацию для отладки при сборке скетча - `Скетч -> Оптимизировать для отладки`. Если отладку запустить без указанной оптимизации, при пошаговом прохождении скетча могут возникнуть проблемы, например, с "перепрыгиванием" лишних строк кода.
5. Активировать оптимизацию для отладки при сборке скетча - `Скетч -> Оптимизировать для отладки`. Если отладку запустить без указанной оптимизации, при пошаговом прохождении скетча могут возникнуть проблемы, например, с "перепрыгиванием" лишних строк кода, или значения некоторых переменных могут отображаться некорректно.
6. Скомпилировать скетч - `Скетч -> Проверить/Скомпилировать`.
7. Загрузить скетч на плату. Загружать скетч можно как по USB (`Скетч -> Загрузить на плату`), так и через программатор (`Скетч -> Загрузить на плату при помощи программатора`).
! При запуске отладки скетч не компилируется и не загружается на плату автоматически. Поэтому при внесении изменений в код необходимо вручную повторять пункты 6,7 перед запуском отладки.
8. Открыть панель отладочника в меню слева:
![Debug_panel.PNG](debug_panel.PNG)
После запуска отладки здесь будут доступны к просмотру стек вызовов функций, значения переменных, установленные точки остановы, а также состояние периферийных регистров микроконтроллера.
9. Для запуска отладки нажать кнопку `Начать отладку` в верхней части экрана:
После запуска отладки здесь будут доступны к просмотру стек вызовов функций, значения переменных, установленные точки останова, а также состояние периферийных регистров микроконтроллера.
9. Для запуска отладки необходимо нажать кнопку `Начать отладку` в верхней части экрана:
![Debug_start.PNG](debug_start.PNG)
При этом:
- откроется новый терминал `gdb-server`, в котором запустится программа openocd. Терминал отображает статус соединения с микроконтроллером.
- запустится режим отладки, а курсор выполнения программы остановится в начале функции `setup()`.
- станут активны кнопки пошагового перемещения по программе.
- в стеке вызовов и в разделе состояния переменных появится новая информация.
- Откроется новый терминал `gdb-server`, в котором запустится программа openocd. Терминал отображает статус соединения с микроконтроллером.
- Запустится режим отладки, а курсор выполнения программы остановится в начале функции `setup()`.
- Станут активными кнопки пошагового перемещения по программе.
- Во всех разделах на панели отладки обновится информация.
10. Для просмотра отладочной информации можно запустить консоль отладки. Для этого на панели отладки нужно нажать соответствующую кнопку:
![Debug_console.PNG](debug_console.PNG)
В отладке доступно:
- отладочная информация в консоли отладки
- пошаговое исследование кода
- выполнение кода до точки останова (доступно только 2 точки)
- отслеживание состояния указанных переменных
- просмотр состояния периферийных регистров микроконтроллера
- просмотр состояния служебных регистров (и регистров из архитектуры)
- просмотр стека вызовов при паузе
В [статье от Arduino](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-debugger/) подробно описано, как работать в ArduinoIDE в режиме отладки.
При работе с платами, входящими в состав пакета, накладывается ограничение на доступное количество точек останова - одновременно можно использовать не более 2 точек.