Рубрики
Схемы на Arduino

Как производить отладку программ для Arduino: руководство для начинающих

Отладка программы является жизненно важным элементом при ее разработке. Программы для плат Arduino не являются в этом плане исключением. Процедура программирования плат Arduino достаточно проста, чего нельзя сказать о способах отладки программ, доступных для данной платформы. Одна из причин этого заключается в том, что платформа Arduino не располагает специализированными инструментами отладки программ, хотя в новой Arduino IDE pro такой инструмент все же появился.

В данной статье мы рассмотрим собственные (доступные в Arduino IDE) и внешние инструменты отладки программ для плат Arduino.

Также отладку программ для плат Arduino удобно производить в симуляторе UnoArduSim.

Собственные средства отладки в Arduino IDE

В Arduino IDE есть ряд собственных инструментов, которые можно использовать для отладки программ – это компилятор, монитор последовательного порта (Serial Monitor) и последовательный плоттер (построитель графиков в реальном времени по данным из последовательного порта). А в Arduino IDE Pro уже доступен свой собственный отладчик. Давайте рассмотрим эти инструменты более подробно.

Компилятор

Компилятор Arduino IDE можно использовать для проверки предупреждений или ошибок когда мы завершим процесс написания кода. Если компилятор выдает сообщение об ошибке при попытке скомпилировать или загрузить код программы в плату Arduino, проверьте синтаксис, опечатки и другие возможные проблемы в программе.

Использование правильного синтаксиса имеет важное значение для обеспечения компиляции вашего кода программы. При сбое компиляции Arduino IDE отобразит выявленные проблемы в нижней части экрана. Однако сообщения об ошибках, предоставляемые компилятором Arduino IDE, не всегда достаточно информативны и полезны, как этого бы хотелось. Если вы понимаете смысл выдаваемого компилятором сообщения об ошибке, устраните выявленную проблему в коде программы. Если не понимаете – придется использовать другие средства отладки.

Монитор последовательного порта

Если с помощью сообщений компилятора вам не удалось отладить вашу программу, то можно использовать монитор последовательного порта для анализа значений переменных и параметров если вы хотите посмотреть как они меняются в процессе исполнения программы.

Вы можете выводить в окно монитора последовательного порта следующие данные, которые могут пригодиться для отладки программы:

  • значения входных контактов (обычно это данные, считываемые с каких либо датчиков);
  • значения переменных в программе. По изменению их значений вы можете, например, делать выводы о том, исполняются или нет условные операторы (‘if’) в вашей программе;
  • значения выходных контактов (например, значения ШИМ перед подачей их непосредственно на контакт).

Средства отладки в Arduino IDE Pro

Arduino IDE Pro имеет встроенные средства отладки программ, которых нет в обычной Arduino IDE, что делает ее особенно полезной при разработке сложных программ.

К средствам отладки в Arduino IDE Pro относятся:

  • отступы в коде (что облегчает визуальное восприятие кода программы);
  • складывание блока;
  • автоматически закрывающиеся скобки;
  • поиск и замена регулярных выражений;
  • переключение комментариев.

Другими дополнительными функциями Arduino IDE Pro являются отладка в реальном времени, автозаполнение, адаптивный интерфейс и более быстрое время компиляции.

Внешние инструменты отладки программ для плат Arduino

Если рассмотренные в предыдущем разделе статьи собственные средства отладки платформы Arduino вам не помогли найти ошибки в коде программы, то можно попробовать использовать внешние инструменты отладки программ. Далее мы рассмотрим наиболее популярные из этих инструментов.

Visual Micro

Visual Micro – это плагин для Microsoft Visual Studio, который позволяет разрабатывать кросс-платформенные приложения Arduino. Любой код, написанный на Visual Micro и соответствующий спецификациям Arduino, будет одобрен. Поскольку Visual Micro позволяет изменять общий код и библиотеки, он идеально подходит для случаев, когда написание и отладка кода программа производится несколькими участниками (командой разработчиков). Код с нескольких платформ может быть разработан и интегрирован с программным кодом в процессе компиляции. Visual Micro также обеспечивает отладку GDB и отладку фрагментов кода программы, работающих с последовательными портами связи, технологиями Bluetooth и WiFi.

DebugWire

DebugWire – это протокол, разработанный компаний Atmel и позволяющий производить отладку программ, написанных для микроконтроллеров серий ATTiny (ATTiny 13, 85 и др.) и ATmega (ATmega 32/48/88/168/328), без использования интерфейса JTAG, используя только контакт сброса (Reset pin). Компания Atmel не выкладывает документацию протокола debugWIRE в открытый доступ, однако ряд энтузиастов перепроектировали его большие разделы и смогли создать несколько базовых отладчиков на его основе. Протокол DebugWire обеспечивает полный доступ на чтение и запись ко всей памяти микроконтроллеров AVR, а также полный контроль над процессом выполнения программы. Он поддерживает следующие инструменты отладки программ:

  • пошаговое выполнение программы (по одной строчке в коде программы);
  • выполнение программы до позиции курсора;
  • пошаговый выход;
  • прерывание работы программы.

Atmel Studio

Atmel Studio IDE — это бесплатная программа, которая обладает весьма неплохими возможностями отладки программ. Atmel Studio позволяет разрабатывать, компилировать и загружать программу в соответствующий микроконтроллер. IDE Atmel Studio, как и Arduino IDE, использует один и тот же код, поэтому вам не нужно изучать новый язык программирования, чтобы использовать Atmel Studio.

Atmel Studio обладает высокой адаптивностью и поддерживает чертежи .into, а также исходные коды C++. Также она обладает отличными возможностями отладки с помощью debugWIRE или JTAG.

На нашем сайте вы можете прочитать статьи про программирование микроконтроллеров AVR с помощью программатора USBASP и Atmel Studio 7.0 и русификацию программы Atmel Studio 7.0.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *