В этой статье поговорим о том, как отлаживать программы на плате Arduino UNO с помощью debugWire. Я частенько использую эту платку или Nano для отладки своих программ в Atmel Studio (использовать Arduino IDE у меня рука не поднимается). И так начнем.
Что можно сделать с помощью debugWire?
Прочитать память контроллера, выполнить пошаговую отладку кода, установить точки останова программы, прочитать регистры и значения на портах ввода/вывода и т.п.
Что для этого будет необходимо?
— Arduino Uno
— Atmel Studio 6
— AVR Dragon программатор-отладчик
Подготавливаем железо
В даташите на Atmega328 говорится:
«Конденсаторы, подключенные к пину RESET, должны отключены при использовании debugWire. Все внешние источники сброса должны быть отключены»
Если проверить схему Arduino Uno, можно увидеть, что к RESET подключен конденсатор 100нФ. В старых версиях Arduino необходимо было снять этот конденсатор для отключения RESET. На новых платах есть специальная перемычка, которая может быть разрезана и запаяна вновь, если потребуется.
Подготовка софта
Просто компилируем код в Atmel Studio, нет необходимости заливать программу отдельно через AVR DUDE, AVR Dragon сам сделает это через debugWire.
Подключаем железо
Подключаем ISP от AVR Dragon к ISP Arduino Uno. Обратите внимание, что контакт 1 подключается к PIN1 на другом устройстве, т.е. MISO подключается к MISO. AVR Dragon и Arduino запитываются каждый через свой USB разъем. В настройках выбираем использовать AVR Dragon в качестве отладчика.
Открываем меню программирования Tools > Device Programming
Внимание «шьем» фьюзы
Собственно устанавливаем фьюз-бит DWEN. В даташите также сказано что LOCK биты не должны быть запрограммированы.
Запускаем debugWire
1. После того как прошили фьюзы временно отключаем питание Arduino Uno.
2. Устанавливаем debugWire как интерфейс для программирования и отладки
3. Жмем «Start Debugging and Break» или Alt+F5. Можно просто нажать F5, а уже потом точки останова расставить. Отладка запускает прошивку тоже.
4. Отлаживаем программу, устанавливаем где надо точки останова, наблюдаем за регистрами и портами ввода-вывода.
5. Останавливаем отладку Ctrl+Shift+F5, изменяем код и возвращаемся к пункту 3.
6. Жмем меню «Debug > Disable debugWIRE» Это меню доступно только во время отладки, так что, если что жмем снова F5. После это DWEN сбрасывается и можно снова использовать ISP.
Вот и все.
Обсуждение статьи на форуме http://radiotech.kz/threads/otladka-arduino-cherez-debugwire-atmel-studio-i-avr-dragon.299/
Если статья написана для ардуинщиков — то дебильная!!!
Что такое Arduino UNO и Arduino IDE я знаю и пользоваться умею.
Что такое Atmel Studio и debugWire я НЕ знаю. Сложно приложить фотку или скриншот?
«Просто компилируем код в Atmel Studio, нет необходимости заливать программу отдельно через AVR DUDE, AVR Dragon сам сделает это через debugWire.» Шедеврально!
1) Код ==скетч? или всю прогу пишем в Atmel Studio?
2)AVR DUDE — что это такое?
3)AVR Dragon — что это такое?
Это такой троллинг что ли? Если нет, то мне трудно даже представить зачем вам эта статья, вы уже все знаете, не стоит узнавать что-то больше, прошу вас!
Интернет — открытая система, не нравится тут — иди на другой ресурс.
Гуглом пользоваться не пробовал?
там много интересного можно узнать.
беда ардуино в том, что научившись что то делать в песочнице (не далее простеньких примеров и банальных задачек) «разработчик» считает, что все знает ( тут описано https://ru.wikipedia.org/wiki/Эффект_Даннинга_—_Крюгера ).
прокачивайтесь и вам будет стыдно за ваши комментарии.
У тебя оперативка только 2 слова тянет, дальше заголовок не читается. Далее получается ардуинщики это типа такая элита, и статьи для них в большинстве своем состоят из картинок, говори только за себя)
Уберите из названия статьи слово Arduino, а то бред какой-то получается
А что именно в слове Arduino вас смущает?
debugWire классная штука, когда нет в чипе JTAG контактов. Пользовался успешно.
Ардуино экзотика, потому как нет прямого способа глубокой отладки(только косвенно!).
Было бы здорово тут увидеть процесс перевода скетчей в пригодный текст для Studio(лучше IAR). И тогда далее было бы понятно как действовать.
«Просто компилируем код в Atmel Studio»
КАКОЙ НАХ КОД?