32bit_me (32bit_me) wrote,
32bit_me
32bit_me

Category:

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

Запись опубликована 32 bit.me. You can comment here or there.

Решил поиграться с 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 — имена переменных, которые нам нужно просматривать. Снова загружаем код в плату, всё работает, значения переменных отображаются.

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

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

Tags: C и C++, микроконтроллеры, программирование
Subscribe

  • С днём космонавтики!

  • Прекрасное под катом

    Людям со слабой психикой под кат не заглядывать! Описание: Книга даёт ответы на главные вопросы науки и человечества, описывает неизвестное…

  • Вселенная-25

    Практически каждый раз, когда начинаются разглагольствования об "обществе потребления", всплывает так называемый "эксперимент Вселенная 25". Если…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments