Подтвердить что ты не робот

Как вы отлаживаете код Arduino, работающий на оборудовании Arduino?

Есть ли способ установить контрольные точки исходного уровня, запустить код на реальном аппаратном обеспечении и уметь проверять переменные и продолжать?

4b9b3361

Ответ 1

плагин Visual Micro для Microsoft Visual Studio 2015 Community Edition (бесплатно) предоставляет USB-отладчик для Arduino, Это позволяет делать то, что вы описываете. (Не забудьте нажать, чтобы установить С++ во время установки IDE)

Отладчик поддерживает последовательный, радиочастотный, Bluetooth и некоторые Wi-Fi. Он позволяет отслеживать или обновлять значения переменных во время работы Arduino. Отображаются диаграммы и данные/выводные изображения, а также часы, трассировка, разрыв.

Enter image description here

Новости: Январь 2016 также включает выпуск отладчика GDB для Arduino Zero. Как и в случае с отладчиком Serial/Bluetooth, версия GDB поддерживает исходный код ino/cpp, но дополнительно поддерживает отладку ядра и библиотек Arduino. Он поддерживает множество функций, таких как: шаг вперед, шаг, шаг или исходная строка, память, регистры, локальные жители, часы, живые выражения и трассировка стека.

Ответ 2

Способ установки "контрольных точек источника" на Arduino состоит в том, чтобы добавить последовательный вывод для отправки значения, которое вы хотите видеть в последовательном мониторе.

Когда вы будете готовы, следующим шагом будет переход на WinAVR, AVR Studio и Atmel JTAG Mark II или Atmel Dragon.

Эти программы и устройства позволят вам создать код C и сделать один шаг через код и контролировать переменные и регистры. Устройства JTAG могут выполнять один шаг через ваш код C или код сборки, созданный компилятором.

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

Ответ 3

Для проверки переменных я просто печатаю их на последовательном мониторе. Вот пример, над которым я сейчас работаю:

# Setup
Serial.begin(9600);

# Loop
Serial.println(String(index) + " : " + String(total) + " : " + String(average));