Оглавление:

Как использовать отладчик на ESP32: 11 шагов (с изображениями)
Как использовать отладчик на ESP32: 11 шагов (с изображениями)

Видео: Как использовать отладчик на ESP32: 11 шагов (с изображениями)

Видео: Как использовать отладчик на ESP32: 11 шагов (с изображениями)
Видео: ESP32 - Точка доступа WiFi 2024, Июль
Anonim
Как использовать отладчик на ESP32
Как использовать отладчик на ESP32

Вы когда-нибудь хотели заглянуть внутрь своего кода, чтобы понять, почему он так себя ведет? Традиционно в проектах ESP32 вам пришлось бы добавить бесконечный оператор печати, чтобы попытаться выяснить, что происходит, но есть способ лучше!

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

В этом руководстве я покажу вам, как настроить оборудование, настроить программное обеспечение и показать простой пример использования отладчика.

Запасы

  • ESP-Prog - это плата, необходимая для отладки

    • Ровно тот, который я купил *
    • На 5 долларов дешевле, но не тестировал *
  • ESP32, выламывающий пины 12, 13, 14, 15

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32 *
  • [ДОПОЛНИТЕЛЬНО] Debug Shield, который я продаю на Tindie

    • Перо Huzzah32
    • D1 Mini ESP32

* = Партнерская ссылка

Шаг 1. Посмотрите видео

Image
Image

У меня есть видео по этой теме, если вы хотите его проверить.

На своем канале я обычно делаю видеоролики на основе ESP8266 и ESP32, так что, если они вам интересны, просмотрите их!

Шаг 2: Оборудование - Детали и проводка

Аппаратное обеспечение - Детали и проводка
Аппаратное обеспечение - Детали и проводка
Аппаратное обеспечение - Детали и проводка
Аппаратное обеспечение - Детали и проводка
Аппаратное обеспечение - Детали и проводка
Аппаратное обеспечение - Детали и проводка

Чтобы использовать отладчик, вам понадобится только ESP-Prog и почти любая плата ESP32 (ссылки на них на предыдущем шаге)

ESP-Prog:

ESP-Prog - это плата, разработанная espressif, создателем микросхем ESP32 и ESP8266. Он подключается к JTAG-контактам ESP32, чтобы мы могли использовать отладчик. Его также можно использовать для программирования плат ESP32, но я не буду здесь останавливаться на этом.

Плата ESP32:

Вы можете использовать для этого практически любую плату ESP32, если она выламывает контакты JTAG, а именно 12, 13, 14 и 15. Я тестировал и плату Adafruit Pher Huzzah32, и плату D1 Mini 32, и они оба работали нормально.

Обратите внимание, что вы можете использовать контакты JTAG в своем скетче с отладчиком, например, встроенный светодиод платы Huzzah32 находится на контакте 13, поэтому вы не можете использовать его во время отладки.

Электропроводка:

Чтобы подключить ESP-Prog к ESP32, просто используйте руководство по подключению, как показано на рисунке выше. Сверьтесь со схемой подключения вашей платы ESP32, если вы не сразу видите соответствующие контакты, поскольку иногда они используют другую схему именования.

Щиты отладки:

Они не являются обязательными, но я продаю некоторые экраны на Tindie для Huzzah32 и D1 Mini 32, которые делают подключение ESP-Prog очень простым, он выламывает соответствующие контакты к разъему IDC, который вы можете использовать ленточный кабель для прямого подключения щит и ESP-Prog

Шаг 3: Оборудование - Настройка драйвера

Аппаратное обеспечение - Настройка драйвера
Аппаратное обеспечение - Настройка драйвера
Аппаратное обеспечение - Настройка драйвера
Аппаратное обеспечение - Настройка драйвера
Аппаратное обеспечение - Настройка драйвера
Аппаратное обеспечение - Настройка драйвера

Чтобы использовать ESP-прогу для отладки, нам необходимо установить для нее соответствующие драйверы. PlatformIO предлагает несколько шагов для этого здесь, но в этом руководстве я рассмотрю шаги Windows.

  1. Загрузите и установите драйверы FTDI для ESP-Prog отсюда, прокрутите вправо, чтобы загрузить «исполняемую версию установки», чтобы упростить задачу.
  2. Загрузите и установите инструмент Zadig отсюда, это позволяет нам установить общий драйвер, необходимый для отладки.
  3. Подключив ESP-Prog, откройте Zadig.
  4. В приложении Zadig в разделе «Параметры» нажмите «Список всех устройств».
  5. Выпадающий список в Zadig будет заполнен, выберите опцию «Dual RS232-HS (Interface 0)». Убедитесь, что вы выбрали интерфейс 0!
  6. Справа от зеленой стрелки должен быть выбран «WinUSB», затем нажмите «Заменить драйвер».

Когда это будет завершено, ваши драйверы должны быть настроены для использования!

Примечание. Если вы измените порт USB, который вы используете для ESP-Prog, вам, возможно, придется повторить шаги 3–6 еще раз. Если при отладке вы получаете сообщение об ошибке, как показано на рисунке выше, вам необходимо повторить шаги.

Шаг 4: Программное обеспечение: установка PlatformIO

Программное обеспечение: установка PlatformIO
Программное обеспечение: установка PlatformIO
Программное обеспечение: установка PlatformIO
Программное обеспечение: установка PlatformIO
Программное обеспечение: установка PlatformIO
Программное обеспечение: установка PlatformIO

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

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

  • Загрузите и установите Visual Studio Code (VS Code) по ссылке на веб-сайте PlatformIO.org.
  • Откройте VS Code и откройте меню расширений, кнопка выделена на картинке выше.
  • Введите «platformio» в поиск, выберите его и нажмите «Установить».

Шаг 5: Программное обеспечение: использование PlatformIO

Программное обеспечение: Использование PlatformIO
Программное обеспечение: Использование PlatformIO
Программное обеспечение: Использование PlatformIO
Программное обеспечение: Использование PlatformIO
Программное обеспечение: Использование PlatformIO
Программное обеспечение: Использование PlatformIO

Использование PlatformIO немного отличается от использования Arudino IDE, поэтому на этом шаге мы просто рассмотрим основы запуска примера на плате.

Открытие примера:

  1. Нажмите кнопку «Домой» на панели инструментов PlatformIO (как показано на рисунке).
  2. Нажмите кнопку "Примеры проектов".
  3. Выберите пример "Arduino-blink" в разделе Espressif 32.

Это откроет образец проекта мигания. Компоновка PlatformIO сильно отличается от проекта Arduino, поэтому давайте рассмотрим основы.

Где код?

Код вашего проекта будет храниться в папке «src», в примере с миганием вы увидите файл «blink.cpp», этот файл совпадает с вашим файлом скетча (.ino) в проекте Arduino.

Как настроить доску?

Конфигурации вашего проекта хранятся в файле «platformio.ini» в вашем проекте. На самом деле это одна из моих любимых вещей в PlatformIO по сравнению с Arduino IDE, для меня никогда не было смысла, что настройки платы не были привязаны к эскизам.

Пример.ini содержит определения для нескольких разных плат, но для простоты удалим два нижних определения.

Где мне установить свой COM-порт?

PlatformIO на самом деле автоматически попытается найти правильный COM-порт для использования, так что вы можете вообще ничего не настраивать для этого. Но если у вас есть несколько COM-портов, которые вы будете использовать при использовании отладчика, я думаю, имеет смысл установить именно тот, который вам нужен. Вы можете увидеть различные устройства, которые у вас есть, щелкнув раздел «Устройства» на главной вкладке и вы можете указать, какой из них находится в вашем ESP32, в «platformio.ini», добавив конфигурацию «upload_port».

Как мне загрузить свой код?

Нажмите кнопку «Загрузить» (значок - стрелка, указывающая вправо), и код должен скомпилироваться и загрузить. Теперь на вашей плате должен мигать светодиодный индикатор.

Шаг 6: Отладка: потенциальная кожура банана

Отладка: потенциально банановая кожа!
Отладка: потенциально банановая кожа!
Отладка: потенциально банановая кожа!
Отладка: потенциально банановая кожа!
Отладка: потенциально банановая кожа!
Отладка: потенциально банановая кожа!

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

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

Проверьте на домашней странице версию ядра PlatformIO, если это «4.3.0», выполните следующие действия.

  1. На панели инструментов PlatformIO щелкните значок терминала
  2. В терминале введите: pio upgrade --dev
  3. Необходимо обновить код RestartVS и PlatfromIO.

Шаг 7: Отладка: конфигурация

Отладка: Конфигурация
Отладка: Конфигурация

Нам нужно отредактировать файл «PlatofrmIO.ini», чтобы включить отладку, нам нужно только добавить в него две вещи.

debug_tool = esp-prog

Это устанавливает инструмент отладки, который мы используем.

debug_init_break = настройка tbreak

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

Шаг 8: Отладка: начало отладки

Отладка: начало отладки
Отладка: начало отладки
Отладка: начало отладки
Отладка: начало отладки
Отладка: начало отладки
Отладка: начало отладки
Отладка: начало отладки
Отладка: начало отладки

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

  1. Создайте новую переменную «int delayTime = 1000;» вне каких-либо методов это сделает его глобальной переменной.
  2. Замените число внутри вызовов задержки в цикле этой новой переменной: delay (delayTime);

Загрузите код на плату еще раз, затем, чтобы начать отладку, на панели инструментов нажмите «Выполнить», затем «Начать отладку».

Вы увидите, как что-то движется в окне терминала, но даже если в нем указано, что все прошло успешно, если вы нажмете на «Консоль отладки», вы увидите, что он все еще работает, это займет несколько секунд, чтобы закончить.

Если все прошло, как ожидалось, вы увидите, что отладчик остановился в начале установки.

Шаг 9: Отладка: базовое использование

Отладка: базовое использование
Отладка: базовое использование
Отладка: базовое использование
Отладка: базовое использование
Отладка: базовое использование
Отладка: базовое использование
Отладка: базовое использование
Отладка: базовое использование

Давайте рассмотрим некоторые основы того, что вы можете делать с отладчиком.

Создание точек останова:

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

Навигация по точкам останова:

Чтобы перемещаться между точками останова или перейти к следующей строке кода, вы можете использовать инструменты, которые появятся в верхней части экрана. Нажмите кнопку «продолжить» (выглядит как кнопка воспроизведения), чтобы переместить только что созданную точку останова внутри цикла.

Переменные часы:

Отслеживание переменных позволяет отслеживать значение переменных, когда отладчик останавливается в точке останова. Чтобы добавить новую переменную, вы можете щелкнуть значок +, а затем просто ввести имя переменной. В качестве демонстрации введите переменную, которую мы добавили на предыдущем шаге, «delayTime».

Наблюдатель переменных:

Вы также можете увидеть все переменные и их значения, доступные в вашей текущей точке останова. Чтобы продемонстрировать это, если вы посмотрите в раздел «Global», вы должны найти переменную «delayTime».

Редактирование значения переменных:

Вы также можете редактировать значения переменных, и это немедленно повлияет на поведение вашего кода. Чтобы продемонстрировать это, щелкните по переменной delayTime в разделе Variable Viewer и измените значение на «100». Чтобы показать, как это работает, отключите точку останова внутри цикла, снова щелкнув слева от номера строки. Нажмите кнопку продолжения на панели навигации точки останова. Светодиод на вашем ESP32 теперь должен мигать намного быстрее, чем раньше.

Шаг 10: Устранение неполадок

Исправление проблем
Исправление проблем

Во время тестирования я обнаружил, что иногда я не мог загрузить в ESP32, когда он был подключен к ESP-проге, и я не мог понять, почему это произошло, потому что большую часть времени я мог загружать без какие-то проблемы. Я обнаружил, что могу просто отключить ESP32 и ESP-Prog, загрузить код в ESP32, а затем снова подключить их, и все будет нормально.

Шаг 11: Заключение

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

Я хотел бы услышать, если вы найдете это полезным !. Пожалуйста, дайте мне знать в комментариях ниже или присоединитесь ко мне и к группе других производителей на моем сервере Discord, где мы можем обсудить эту тему или любого другого создателя, связанного с вашим, люди действительно полезны там, так что это отличное место, чтобы повесить из.

Я также хотел бы поблагодарить моих спонсоров Github, которые помогают поддерживать то, что я делаю, я действительно ценю это. Если вы не знаете, Github подбирает спонсорство в течение первого года, поэтому, если вы сделаете спонсорство, они будут соответствовать ему на 100% в течение следующих нескольких месяцев. Спасибо за прочтение!

Рекомендуемые: