Съдържание:

Как да използвате дебъгер на ESP32: 11 стъпки (със снимки)
Как да използвате дебъгер на ESP32: 11 стъпки (със снимки)

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

Видео: Как да използвате дебъгер на ESP32: 11 стъпки (със снимки)
Видео: Home Assistant - подключаем адресную ленту WS2812B через ESP8266 с прошивкой WLED 2024, Юли
Anonim
Как да използвате Debugger на ESP32
Как да използвате Debugger на ESP32

Искали ли сте някога да надникнете в кода си, за да видите защо се държи така, както е? Традиционно в проектите на ESP32 би трябвало да добавите безкрайно изявление за печат, за да разберете какво се случва, но има по -добър начин!

Дебъгерът е начин да видите какво се случва в определени раздели на вашия код и да изпробвате различни стойности на променливи, без да прекомпилирате кода си, обикновено това не е нещо, което ни е достъпно за вградени проекти, но в това ръководство ще ви покажа как да го използвате на ESP32.

В това ръководство ще ви покажа как да настроите хардуера, да настроите софтуера и да покажа прост пример за използване на дебъгъра.

Консумативи

  • ESP -Prog - Това е дъската, необходима за отстраняване на грешки

    • Точна, която си купих*
    • $ 5 по -евтин, но не съм го тествал*
  • ESP32, който избухва щифтове 12, 13, 14, 15

    • Адафрутно перо Huzzah32
    • D1 Mini ESP32*
  • [ОПЦИОНАЛНО] Щит за отстраняване на грешки продавам на 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 перо Huzzah32, така и D1 Mini 32 платка и двете работиха добре.

Моля, обърнете внимание, че можете да използвате щифтовете JTAG в скицата си с дебъгъра, например вграденият светодиод на платката Huzzah32 е на пин 13, така че не можете да го използвате по време на отстраняване на грешки.

Електрически инсталации:

За да свържете ESP-Prog към ESP32, просто използвайте ръководството за окабеляване, както е показано на снимката по-горе. Проверете с диаграмата на окабеляване на вашата платка ESP32, ако не видите веднага подходящите щифтове, тъй като понякога те използват различна схема за именуване.

Отстраняване на грешки в щитове:

Те не са задължителни, но продавам някои щитове на Tindie за Huzzah32 и D1 Mini 32, които правят свързването на ESP-Prog наистина лесно, той разбива подходящите щифтове към IDC конектор, който можете да използвате с лентов кабел, за да се свържете директно между щита и ESP-Prog

Стъпка 3: Хардуер - Настройка на драйвера

Хардуер - Настройка на драйвера
Хардуер - Настройка на драйвера
Хардуер - Настройка на драйвера
Хардуер - Настройка на драйвера
Хардуер - Настройка на драйвера
Хардуер - Настройка на драйвера

За да използваме ESP-prog за отстраняване на грешки, трябва да инсталираме подходящите драйвери за него. PlatformIO предоставя някои стъпки за това тук, но ще премина през стъпките на Windows в това ръководство.

  1. Изтеглете и инсталирайте драйверите за FTDI за ESP-Prog от тук, превъртете надясно, за да изтеглите версията "setup executable", за да улесните.
  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. Рестартирайте VS кода и PlatfromIO трябва да се актуализират

Стъпка 7: Отстраняване на грешки: Конфигурация

Отстраняване на грешки: Конфигурация
Отстраняване на грешки: Конфигурация

Трябва да редактираме файла „PlatofrmIO.ini“, за да разрешим отстраняване на грешки, трябва само да добавим две неща към него.

debug_tool = esp-prog

Това задава инструмента за отстраняване на грешки, който използваме.

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

Това е трик, който научихме от видеото на Andress Spiess за отстраняване на грешки в ESP32. Той казва на грешката за отстраняване на грешки да спре в настройката на нашето приложение.

Стъпка 8: Отстраняване на грешки: Стартиране на отстраняване на грешки

Отстраняване на грешки: Стартиране на отстраняване на грешки
Отстраняване на грешки: Стартиране на отстраняване на грешки
Отстраняване на грешки: Стартиране на отстраняване на грешки
Отстраняване на грешки: Стартиране на отстраняване на грешки
Отстраняване на грешки: Стартиране на отстраняване на грешки
Отстраняване на грешки: Стартиране на отстраняване на грешки
Отстраняване на грешки: Стартиране на отстраняване на грешки
Отстраняване на грешки: Стартиране на отстраняване на грешки

Преди да влезем в него, ще направим малка промяна в скицата, която ще улесни демонстрацията какво можете да направите с отстраняването на грешки.

  1. Създайте нова променлива, "int delayTime = 1000;" извън всякакви методи, това ще го направи глобална променлива.
  2. Заменете номера в забавянето в цикъла с тази нова променлива: delay (delayTime);

Качете кода на дъската още веднъж, след това, за да започнете отстраняване на грешки, в лентата с инструменти щракнете върху "Изпълнение", след това "Стартиране на отстраняване на грешки"

Ще видите нещата, които се движат в прозореца на терминала, но дори когато това заявява, че е било успешно, ако щракнете върху „Debug Console“ще видите, че все още работи, ще отнеме няколко секунди, за да завърши.

Ако всичко вървеше според очакванията, ще видите списъка за отстраняване на грешки в началото на настройката.

Стъпка 9: Отстраняване на грешки: Основно използване

Отстраняване на грешки: Основно използване
Отстраняване на грешки: Основно използване
Отстраняване на грешки: Основно използване
Отстраняване на грешки: Основно използване
Отстраняване на грешки: Основно използване
Отстраняване на грешки: Основно използване
Отстраняване на грешки: Основно използване
Отстраняване на грешки: Основно използване

Нека да разгледаме някои от основите на това, което можете да направите с дебъгъра

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

Точка на прекъсване е точка от вашия код, където искате дебъгерът да спре. За да създадете точка на прекъсване, щракнете вляво от номера на реда. Като демонстрация, добавете точка на прекъсване към първия ред в метода на цикъла.

Навигация на точката на прекъсване:

За да се придвижите между точката на прекъсване или да преминете към следващия ред код, можете да използвате инструментите, които ще се появят в горната част на екрана. Натиснете бутона "продължи" (прилича на бутон за възпроизвеждане), за да преместите точката на прекъсване, която току -що създадохме в цикъла.

Променливи часовници:

Променливите часовници ви позволяват да наблюдавате стойността на променливите, когато дебъгерът е спрян в точка на прекъсване. За да добавите нов часовник на променлива, можете да кликнете върху иконата +, след което просто въведете името на променливата. Като демонстрация въведете променливата, която добавихме в предишната стъпка "delayTime"

Преглед на променливи:

Можете също да видите всички променливи и техните стойности, които са налични в текущата ви точка на прекъсване. За да демонстрирате това, Ако погледнете в раздела "Global", трябва да намерите променливата "delayTime".

Редактиране на стойността на променливите:

Можете също да редактирате стойностите на променливите и това ще има незабавен ефект върху поведението на вашите кодове. За да демонстрирате това, кликнете върху променливата delayTime в секцията Varieble Viewer и променете стойността на "100". За да покажете тази работа, деактивирайте точката на прекъсване вътре в цикъла, като щракнете отново вляво от номера на реда. Натиснете бутона за продължаване на лентата за навигация на точката на прекъсване. Светодиодът на вашия ESP32 сега трябва да мига много по -бързо от преди.

Стъпка 10: Отстраняване на неизправности

Отстраняване на неизправности
Отстраняване на неизправности

По време на моето тестване установих, че понякога не мога да кача в ESP32, докато е свързан с ESP-прога, и не можах да разбера модел защо това се е случило, защото през повечето време мога да качвам без някакви проблеми. Открих, че мога просто да изключа ESP32 и ESP-Prog, да кача кода в ESP32 и след това да ги свържа отново и ще работи добре.

Стъпка 11: Заключение

Мисля, че това е наистина страхотен инструмент, който да добавите към инструментариума, за да разберете какво се случва във вашия проект.

Ще се радвам да чуя, ако намирате това за полезно !. Моля, уведомете ме в коментарите по -долу или се присъединете към мен и куп други производители на моя сървър Discord, където можем да обсъдим тази тема или всяка друга, свързана с производителя, която имате, хората са наистина полезни там, така че това е чудесно място за окачване навън.

Бих искал също да изразя огромна благодарност към моите спонсори от Github, които помагат да подкрепят това, което правя, наистина го оценявам. Ако не знаете, Github съвпадат със спонсорството за първата година, така че ако направите спонсорство, те ще го сравнят на 100% през следващите няколко месеца. Благодаря за четенето!

Препоръчано: