Как выполнить отладку на чипе с помощью Arduino?

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

, 👍5

Обсуждение

Не могли бы вы пояснить, чего именно вы пытаетесь добиться? Из вопроса не ясно, что именно вы хотите отладить., @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


2 ответа


Лучший ответ:

6

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


1

Возможно, это не совсем то, что вам нужно, но плагин Visual Micro для Atmel Studio и Visual Studio имеет USB-отладчик, который использует только код Arduino.

В фоновом режиме отладчик использует Serial, что может повлиять на некоторые чувствительные ко времени приложения.

,

Будет ли это действительно работать на Arduino Uno?, @Peter Mortensen