Дек 31 2013

Об отладке Arduino и VisualMicro

Решил поиграться с Arduino. Для того, чтобы писать и отлаживать код, решил поставить что-либо более приспособленное для этой цели, чем Arduino IDE. Первое, что пришло в голову, это Eclipse + avr-gcc. Увы, настроить эту связку очень непросто.

В итоге без проблем установился только Arduino Eclipse Plugin отсюда: http://www.baeyens.it/eclipse/. Но, к сожалению, он не имеет возможности установки breakpoint-ов и просмотра переменных в программе.

Второй попыткой стала связка Microsoft Visual Studio 2012 и плагина Visual Micro. Всё поставилось без проблем (подсказка: на VS2013 плагин не ставится). Для наиболее простой установки плагина на VS2012 нужно сделать следующее: Установить Visual Micro, в VS вызвать add-in manager (меню Tools), в нем поставить чекбокс на Visual Micro Arduino. Потом идём в папку установки Visual Micro (например, C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino) и запускаем MicroManager.exe. Нажимаем на кнопку Reset напротив надписи Visual Studio 2012. Установка готова.

Открываем новый скетч (File->New->Scetch Project), копируем что-нибудь из примеров, подключаем Arduino и нажимаем F5. Скетч компилируется и загружается в ардуино. Теперь о точках останова.

Для того, чтобы все возможности отладки работали, выбираем проект в SolutionExplorer, в окне Properties ставим Misc->(MicroDebug) = Full. Также можно настроить раздел Micro Debug Reporting, если вы хотите видеть состояние дискретных и аналоговых портов.

Ставим брейкпоинт, как обычно, и снова загружаем код в плату по F5. Код загружается и останавливается на брейкпоинте. Для того, чтобы продолжить выполнение кода, нужно снова нажать на F5. Теперь самое интересное. При запуске появляется окно Test | Expressions, в котором можно просматривать значения переменных и выражений, но оно пустое. Для того, чтобы в нем отображались значения переменных в точке останова, нажимаем правой кнопкой мыши на красный кружочек, нажимаем When Hit…, ставим галочку на «Print a message», и вписываем, например, следующее: i={i=?}, n={n=?}, где i и n — имена переменных, которые нам нужно просматривать. Снова загружаем код в плату, всё работает, значения переменных отображаются.

Разумеется, можно указывать и условия для точки останова, и сообщения, которые будут выводиться при попадании в точку останова.

Нажмите на картинку для увеличения.

  • Dmitry

    Может поможет эта ссылка? http://www.simple-devices.ru/articles/7-soft/60-eclipse-for-beginners-0 (седьмая часть об отладке).

  • arktur04

    Спасибо.

  • Humax

    Спасибо.
    А где брали Microsoft Visual Studio 2012?

  • arktur04

    Express-версия доступна для скачивания на сайте корпорации Майкрософт бесплатно.