Arduino 2.0 Встроенная отладка

Прочитал такую интересную для меня информацию.
Новая функция в Arduino IDE 2.0 – это встроенная отладка. Теперь вы можете устанавливать точки останова, анализировать значения переменных и следить за ходом выполнения кода. Также доступен монитор порта в двух видах: текстовый и графический, непосредственно в Ide.
Обрадовался, но оказалось для этого нужны ещё внешние платы какие то. Например, Arduino Zero (UNO, Nano формат). Расскажите коротко, если не сложно, как я могу пользоваться этой встроенной отладкой Arduino. Что для этого нужно. Интересует в части работы с UNO, Nano, ESP32.

За ESP32 не скажу, а UNO и Nano в принципе не поддерживают онлайн отладку. При установке точки останова нужно контроллер перешивать. Проще Serial.print() пользоваться (на мой взгляд).

1 лайк

Спасибо за ответ. Короче, я просто размечтался. Arduino Zero - это совсем другой 32 разр. процессор с встроенным отладчиком, и с ним должна работать отладка в IDE 2.0 .

Неа, не должна

1 лайк

Читаю на docs.arduino.cc
Arduino Zero не требует никакого дополнительного оборудования, поскольку в нем уже есть встроенный отладчик. Это делает его отличным выбором для начинающих, которые хотят узнать больше об отладке.

Оно?

https://aliexpress.ru/item/1005006097381843.html

Есть повод проверить написанное на деле :smiley:

Интересно, и цена подходящая. Только ждать долго.
А вот такой наверное тоже пойдёт?
Seeeduino XIAO SAMD21 Cortex M0+ (Arduino-совместимая)

Хз, какая там совместимость?

Будем пробовать :grinning:.

Возьмите СТМ32, там и отладка есть. Только не знаю, поддерживается ли в Ардуино 2.х

Не, не оно. На Хабре была обзорная статья про Arduino Zero Arduino Zero / Хабр по картинке там видно, что установлено два чипа, один из которых - внутрисхемный отладчик EDBG.

1 лайк

Той статье уже 10 лет.
Но такие платы тоже есть в продаже (капец не демократические цены, я за такую стоимость ЛБП 0…30В 0…10А купил :smiley: )

https://aliexpress.ru/item/1005006291740516.html

Предупреждение: В отличие от большинства плат Arduino, Zero работает при 3,3 В. Максимальное напряжение, которое могут выдерживать контакты ввода/вывода, составляет 3,3 В. Подача напряжения выше 3,3 В на любой вывод ввода/вывода может повредить плату.

В этой теме речь за встроенную отладку, а для этого требуется внутрисхемный отладчик. Будет он установлен на плату или как отдельное устройство не имеет значения. Дешево он стоить не будет.

2 лайка

Всегда поражало отсутствие нглдного состояние регистров и модулей, отсутствие симулятора и кучи других полезных фич.
Пиши программы “вслепую”! Ведь “Ардуино это просто!”.
На автомобиле тоже проще ездить с закрытими глазами: не надо разбираться в ПДД, в переключении передач. Просто жми на газ🤣

Это дело привычки. Или отсутствия таковой.
Не имею привычки к отладке, потому даже на контроллерах, где она есть - практически ни разу за все время работы с контроллерами ей не пользовался.

А я бы даже дополнил:
Отлаживать нужно то устройство, которое работает НЕ так как задумывалось. У меня пока таких не было :smiley:

А изначальное отсутствие отладки для меня не удивительно - в иде даже предупреждения по умолчанию выключены…

везет.
У меня почти ни один код не работает сразу.
Но я пишу маленькими порциями и обычно найти ошибки не составляет труда.

Иное дело, когда код можно тестировать только в целом - то есть пишешь неделю, а то и месц - а только потом начинаешь тестировать. Тут уж без отладки никак.

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

Отладка и тестирование - это разные этапы создания работающего кода. Тестирование начинается после завершения отладки.

Фиг знает… видимо мой код имеет нетривиальный алгоритм, в котором крайне сложно не совершить ошибку.

Ага, вот когда случайно кружкой чая удалишь фигурную скобочку в хедере, а потом два дня будешь искать причину в другом месте(компилятор сходит с ума и выдаёт кучу ошибок в других местах) дня 2, тогда я посмотрю)))
Лично у меня ошибки на 95% из-за невнимательности. Остальные 5% блуждания в дебрях алгоритмов.

  1. Разбивай программу на «удобоваримые» блоки
  2. Сохраняй версии

Было один раз - коньячку хряпнул и что-то доработать захотелось. Просидел часов до 3 утра - вообще всё перестало работать (причем компилятор не ругался) :smiley:

Проспался, откатился назад и быстро всё на свежую голову доработал. Так что хранить версии - рекомендация №1 :smiley:

1 лайк