Как выполнить отладку на чипе с помощью Arduino?
Хотя эмулятор весьма полезен для отладки кода, не имеющего побочных эффектов, большинство реальных приложений включают в себя некоторые схемы помимо Arduino. Если бы микроконтроллер на Arduino имел интерфейс JTAG, это было бы довольно просто, но что, если это, например, Arduino Uno?
@polkovnikov.ph, 👍5
Обсуждение2 ответа
Лучший ответ:
Arduino Uno использует микроконтроллер Atmel Atmega328p, который имеет только одну опцию отладки, DebugWire. Есть несколько инструментов, которые могут работать с ним, но наименее дорогой и наиболее распространенный — это AVR Dragon.
Для этого можно использовать AVR Studio 6. Можно использовать файл .elf
, созданный непосредственно в процессе сборки Arduino, но настройка отладчика немного проще, если вы портируете программу Arduino в AVR Studio. Это несложно, но нужно разобраться со множеством мелких деталей. В сети есть руководства, которые помогут вам в этом.
Существует ли клон AVR Dragon с открытой прошивкой?, @polkovnikov.ph
Есть ли ссылки на эти онлайн-руководства?, @polkovnikov.ph
Существуют клоны MKII, которые будут делать debugwire с этим чипом, но я не знаю об их аппаратном или программном статусе с открытым исходным кодом, и мне сложно найти хороший пример. Вот одно руководство по использованию AVR Studio 6 с проектами arduino: http://www.engblaze.com/tutorial-using-atmel-studio-6-with-arduino-projects/, @Adam Davis
Разве для этого не требуется [удаление конденсатора](https://awtfy.com/2010/02/21/modify-an-arduino-for-debugwire/)?, @Peter Mortensen
@PeterMortensen Я не знаю, вам придется изучить схему arduino uno и требования debugwire вместе с документацией вашего отладчика. Возможно, стоит задать новый вопрос, чтобы получить или поделиться подробностями конкретной настройки., @Adam Davis
Возможно, это не совсем то, что вам нужно, но плагин Visual Micro для Atmel Studio и Visual Studio имеет USB-отладчик, который использует только код Arduino.
В фоновом режиме отладчик использует Serial, что может повлиять на некоторые чувствительные ко времени приложения.
Будет ли это действительно работать на Arduino Uno?, @Peter Mortensen
- Как скомпилировать программу Arduino для настольного ПК
- Можно ли программировать для Ардуино без реальной платы?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Предупреждение при проверке скетча с кодом VS
- Arduino Uno 3: Застрял на "загрузке..." скетчей
- Доступ запрещен при загрузке
- Какие есть другие IDE для Arduino?
Не могли бы вы пояснить, чего именно вы пытаетесь добиться? Из вопроса не ясно, что именно вы хотите отладить., @asheeshr
@AsheeshR Единственное, что можно отлаживать на Arduino, это исходный код. Есть набор инструментов, называемых "отладчиками", которые используют точки останова, пошаговую оценку и т. д. Я не понимаю ваш вопрос., @polkovnikov.ph
@jippie Ты ошибаешься. DebugWire да, но JTAG нет. ATMega168/368 вообще не поддерживает JTAG. Если вы быстро просмотрите техническое описание, то не найдете никаких ссылок на JTAG, @Madivad
@Madivad Возможно ли превратить еще один Arduino в разъем USB-DebugWire?, @polkovnikov.ph
@polkovnikov.ph Я никогда не пользовался DebugWire, так что не знаю о нем ни слова. Я просто быстро поискал в Google, и там есть всякое, так что посмотрите. Я пользовался только JTAG до Arduino (ATMega128)., @Madivad
DebugWire — это фирменный протокол Atmel, о котором мало информации., @jippie
Я бы сказал, что нет. Самое близкое к отладке, что я видел, это заставить Arduino слушать последовательный порт и выполнять команды (например, дамп переменных) по запросу., @andig
Кажется, есть возможность интерактивной отладки с помощью этого инструмента: http://www.visualmicro.com/post/2012/05/05/Debug-Arduino-Overview.aspx он не бесплатный, но довольно дешевый. Я сам им не пользовался, поэтому не хочу давать ответ., @jfpoilpret