Spisu treści:

Jak korzystać z debugera na ESP32: 11 kroków (ze zdjęciami)
Jak korzystać z debugera na ESP32: 11 kroków (ze zdjęciami)

Wideo: Jak korzystać z debugera na ESP32: 11 kroków (ze zdjęciami)

Wideo: Jak korzystać z debugera na ESP32: 11 kroków (ze zdjęciami)
Wideo: JAK WŁĄCZYĆ DEBUGOWANIE USB NA ANDROIDZIE, OPCJE PROGRAMISTYCZNE | ForumWiedzy 2024, Listopad
Anonim
Jak korzystać z debugera na ESP32?
Jak korzystać z debugera na ESP32?

Czy kiedykolwiek chciałeś zajrzeć do swojego kodu, aby zobaczyć, dlaczego zachowuje się tak, jak jest? Tradycyjnie w projektach ESP32 musiałbyś dodawać niekończące się instrukcje drukowania, aby spróbować dowiedzieć się, co się dzieje, ale jest lepszy sposób!

Debuger to sposób na zobaczenie, co dzieje się w poszczególnych sekcjach kodu i wypróbowanie różnych wartości zmiennych bez ponownej kompilacji kodu, zwykle nie jest to coś dostępnego dla nas w projektach osadzonych, ale w tym przewodniku pokażę ci jak go używać na ESP32.

W tym przewodniku pokażę, jak skonfigurować sprzęt, oprogramowanie i pokazać prosty przykład użycia debuggera.

Kieszonkowe dzieci

  • ESP-Prog - To jest płyta potrzebna do debugowania
    • Dokładnie taki, który kupiłem*
    • 5 USD Tańszy, ale nie testowałem*
  • ESP32, który wyłamuje pin 12, 13, 14, 15

    • Pióro Adafruit Huzzah32
    • D1 Mini ESP32*
  • [OPCJONALNIE] Tarcza debugowania, którą sprzedaję na Tindie

    • Pióro Huzzah32
    • D1 Mini ESP32

* = Link afiliacyjny

Krok 1: Sprawdź wideo

Image
Image

Mam film na ten temat, jeśli chcesz to sprawdzić.

Na moim kanale zwykle robię filmy oparte na ESP8266 i ESP32, więc jeśli jesteś nimi zainteresowany, sprawdź to!

Krok 2: Sprzęt - części i okablowanie

Sprzęt - części i okablowanie
Sprzęt - części i okablowanie
Sprzęt - części i okablowanie
Sprzęt - części i okablowanie
Sprzęt - części i okablowanie
Sprzęt - części i okablowanie

Aby korzystać z debuggera potrzebujesz tylko ESP-Prog i prawie dowolnej płyty ESP32 (linki do nich we wcześniejszym kroku)

Program ESP:

ESP-Prog to płyta zaprojektowana przez espressif, twórców układów ESP32 i ESP8266. Łączy się z pinami JTAG ESP32, aby umożliwić nam korzystanie z debuggera. Może być również używany do programowania płytek ESP32, ale nie będę tego tutaj omawiał.

Płyta ESP32:

Możesz użyć do tego praktycznie dowolnej płytki ESP32, gdy wyłamie ona piny JTAG, czyli 12, 13, 14 i 15. Przetestowałem zarówno płytkę Adafruit Huzzah32 z piórami, jak i płytkę D1 Mini 32 i obie działały bez zarzutu.

Pamiętaj, że możesz użyć pinów JTAG w swoim szkicu z debuggerem, na przykład wbudowana dioda LED płyty Huzzah32 znajduje się na pinie 13, więc nie możesz jej używać podczas debugowania.

Okablowanie:

Aby podłączyć ESP-Prog do ESP32, wystarczy skorzystać z przewodnika okablowania przedstawionego na powyższym obrazku. Sprawdź na schemacie okablowania swojej płyty ESP32, jeśli nie widzisz od razu odpowiednich pinów, ponieważ czasami używają one innego schematu nazewnictwa.

Tarcze debugowania:

Są one opcjonalne, ale sprzedaję na Tindie kilka osłon na Huzzah32 i D1 Mini 32, które sprawiają, że podłączenie ESP-Prog jest naprawdę proste, wyłamuje odpowiednie piny do złącza IDC, które można użyć kabla taśmowego do bezpośredniego połączenia między tarcza i ESP-Prog

Krok 3: Sprzęt - Konfiguracja sterownika

Sprzęt - konfiguracja sterownika
Sprzęt - konfiguracja sterownika
Sprzęt - konfiguracja sterownika
Sprzęt - konfiguracja sterownika
Sprzęt - konfiguracja sterownika
Sprzęt - konfiguracja sterownika

Aby użyć ESP-prog do debugowania, musimy zainstalować do niego odpowiednie sterowniki. PlatformIO zapewnia tutaj kilka kroków, ale przejdę przez kroki systemu Windows w tym przewodniku.

  1. Pobierz i zainstaluj sterowniki FTDI dla ESP-Prog stąd, przewiń w prawo, aby pobrać wersję „wykonywalną konfigurację”, aby było łatwiej.
  2. Pobierz i zainstaluj narzędzie Zadig stąd, to pozwala nam zainstalować ogólny sterownik potrzebny do debugowania.
  3. Po podłączeniu ESP-Prog otwórz Zadig
  4. W aplikacji Zadig, w sekcji „Opcje”, kliknij „Wyświetl wszystkie urządzenia”
  5. Lista rozwijana w Zadig zostanie teraz wypełniona, wybierz opcję „Podwójny RS232-HS (interfejs 0)”. Upewnij się, że wybrany jest interfejs 0!
  6. Po prawej stronie zielonej strzałki należy wybrać „WinUSB”, a następnie kliknąć „Zamień sterownik”

Kiedy to się skończy, twoje sterowniki powinny być gotowe do użycia!

Uwaga: Jeśli zmienisz port USB, którego używasz dla ESP-Prog, być może będziesz musiał powtórzyć kroki 3-6 ponownie. Jeśli podczas debugowania pojawi się błąd, jak pokazano na powyższym obrazku, musisz powtórzyć kroki.

Krok 4: Oprogramowanie: Instalacja PlatformIO

Oprogramowanie: Instalowanie PlatformIO
Oprogramowanie: Instalowanie PlatformIO
Oprogramowanie: Instalowanie PlatformIO
Oprogramowanie: Instalowanie PlatformIO
Oprogramowanie: Instalowanie PlatformIO
Oprogramowanie: Instalowanie PlatformIO

PlatformIO to IDE do tworzenia z różnymi wbudowanymi frameworkami, w tym z ekosystemem Arduino. Jest bardziej skomplikowany w użyciu niż coś takiego jak Arduino IDE, ale jest bardzo potężny i ma pewne funkcje, których Arduino IDE bardzo brakuje, takie jak autouzupełnianie.

PlatformIO wymaga korzystania z debugera. Jeśli znasz już PlatformIO, możesz pominąć kilka kroków.

  • Pobierz i zainstaluj Visual Studio Code (VS Code) z linku podanego na stronie PlatformIO.org
  • Otwórz VS Code i otwórz menu rozszerzeń, przycisk jest podświetlony na powyższym obrazku
  • Wpisz "platformio" w wyszukiwaniu, wybierz je i kliknij zainstaluj.

Krok 5: Oprogramowanie: korzystanie z PlatformIO

Oprogramowanie: Korzystanie z PlatformIO
Oprogramowanie: Korzystanie z PlatformIO
Oprogramowanie: Korzystanie z PlatformIO
Oprogramowanie: Korzystanie z PlatformIO
Oprogramowanie: Korzystanie z PlatformIO
Oprogramowanie: Korzystanie z PlatformIO

Korzystanie z PlatformIO jest nieco inne niż korzystanie z Arudino IDE, więc w tym kroku omówimy tylko podstawy uruchamiania przykładu na płycie.

Otwieranie przykładu:

  1. Kliknij przycisk Strona główna na pasku narzędzi PlatformIO (jak pokazano na rysunku)
  2. Kliknij przycisk „Przykłady projektów”
  3. Wybierz przykład „Arduino-blink” w sekcji Espressif 32

Spowoduje to otwarcie przykładowego projektu migania. Układ PlatformIO jest zupełnie inny niż projekt Arduino, więc przejdźmy przez podstawy.

Gdzie jest kod?

Kod twojego projektu będzie przechowywany w folderze "src", w przykładzie blink zobaczysz plik "blink.cpp", ten plik jest taki sam jak plik szkicu (.ino) w projekcie Arduino.

Jak skonfigurować tablicę?

Konfiguracje dla twojego projektu są przechowywane w pliku "platformio.ini" w twoim projekcie. W rzeczywistości jest to jedna z moich ulubionych rzeczy w PlatformIO w porównaniu do Arduino IDE, nigdy nie miało dla mnie sensu, aby ustawienia płyty nie były związane ze szkicami.

Przykładowy plik.ini zawiera definicje wielu różnych tablic, ale dla uproszczenia usuńmy dwie dolne definicje.

Gdzie ustawić port COM?

PlatformIO automatycznie spróbuje znaleźć odpowiedni port COM do użycia, więc możesz uciec bez ustawiania niczego do tego. Ale jeśli masz wiele portów COM, które będziesz używać podczas korzystania z debugera, myślę, że warto ustawić ten, którego potrzebujesz. Możesz zobaczyć różne posiadane urządzenia, klikając sekcję „Urządzenia” na karcie głównej i możesz ustawić, który z nich znajduje się w ESP32 w "platformio.ini", dodając konfigurację "upload_port".

Jak mogę przesłać swój kod?

Kliknij przycisk Prześlij (ikona to strzałka skierowana w prawo) i powinien skompilować i przesłać kod. Powinieneś teraz mieć migającą diodę LED na swojej płycie.

Krok 6: Debugowanie: Potencjalna skórka banana

Debugowanie: Potencjalna skórka banana!
Debugowanie: Potencjalna skórka banana!
Debugowanie: Potencjalna skórka banana!
Debugowanie: Potencjalna skórka banana!
Debugowanie: Potencjalna skórka banana!
Debugowanie: Potencjalna skórka banana!

To jest coś, co mnie zaskoczyło, kiedy to przygotowywałem i mam nadzieję, że zostanie to naprawione do czasu, gdy spróbujesz, ale pomyślałem, że ważne jest, aby stąd wyjść.

W momencie tworzenia tego przewodnika najnowsza wersja PlatformIO to 4.3.0 i zawiera błąd związany z możliwością debugowania. Na szczęście możemy dość łatwo zaktualizować do najnowszej wersji rozwojowej, co rozwiązuje problem.

Sprawdź na stronie głównej wersję rdzenia PlatformIO, jeśli jest to „4.3.0”, wykonaj następujące czynności.

  1. Na pasku narzędzi PlatformIO kliknij ikonę terminala
  2. W terminalu wpisz: pio upgrade --dev
  3. Należy zaktualizować kod RestartVS i PlatfromIO

Krok 7: Debugowanie: Konfiguracja

Debugowanie: Konfiguracja
Debugowanie: Konfiguracja

Potrzebujemy edycji pliku "PlatofrmIO.ini", aby umożliwić debugowanie, musimy tylko dodać do niego dwie rzeczy.

debug_tool = esp-prog

To ustawia narzędzie do debugowania, którego używamy.

debug_init_break = konfiguracja tbreak

Jest to sztuczka, której nauczyliśmy się z filmu Andress Spiess na temat debugowania w ESP32. Nakazuje debugerowi zatrzymanie konfiguracji naszej aplikacji.

Krok 8: Debugowanie: Rozpoczęcie debugowania

Debugowanie: Rozpoczęcie debugowania
Debugowanie: Rozpoczęcie debugowania
Debugowanie: Rozpoczęcie debugowania
Debugowanie: Rozpoczęcie debugowania
Debugowanie: Rozpoczęcie debugowania
Debugowanie: Rozpoczęcie debugowania
Debugowanie: Rozpoczęcie debugowania
Debugowanie: Rozpoczęcie debugowania

Zanim do tego przejdziemy, dokonamy niewielkiej zmiany w szkicu, która ułatwi zademonstrowanie, co można zrobić z debugowaniem.

  1. Utwórz nową zmienną, "int delayTime = 1000;" poza jakimikolwiek metodami, uczyni to zmienną globalną.
  2. Zastąp liczbę wewnątrz wywołań opóźniających w pętli nową zmienną: delay(delayTime);

Ponownie prześlij kod na tablicę, a następnie, aby rozpocząć debugowanie, na pasku narzędzi kliknij „Uruchom”, a następnie „Rozpocznij debugowanie”

Zobaczysz, jak rzeczy poruszają się w oknie terminala, ale nawet jeśli mówisz, że to się udało, jeśli klikniesz „Konsola debugowania”, zobaczysz, że nadal działa, ukończenie zajmie kilka sekund.

Jeśli wszystko poszło zgodnie z oczekiwaniami, debuger zatrzyma się na początku instalacji.

Krok 9: Debugowanie: podstawowe użycie

Debugowanie: podstawowe użycie
Debugowanie: podstawowe użycie
Debugowanie: podstawowe użycie
Debugowanie: podstawowe użycie
Debugowanie: podstawowe użycie
Debugowanie: podstawowe użycie
Debugowanie: podstawowe użycie
Debugowanie: podstawowe użycie

Omówmy niektóre z podstaw tego, co można zrobić za pomocą debugera

Tworzenie punktów przerwania:

Punkt przerwania to punkt kodu, w którym debuger ma się zatrzymać. Aby utworzyć punkt przerwania, kliknij po lewej stronie numeru wiersza. Jako demonstrację dodaj punkt przerwania do pierwszej linii w metodzie pętli.

Nawigacja w punktach przerwania:

Aby poruszać się między punktem przerwania lub przejść do następnej linii kodu, możesz użyć narzędzi, które pojawią się u góry ekranu. Naciśnij przycisk „kontynuuj” (wygląda jak przycisk odtwarzania), aby przenieść właśnie utworzony punkt przerwania wewnątrz pętli.

Zegarki zmienne:

Zegary zmiennych umożliwiają monitorowanie wartości zmiennych, gdy debuger jest zatrzymany w punkcie przerwania. Aby dodać nowy zegarek ze zmienną, możesz kliknąć ikonę +, a następnie po prostu wpisać nazwę zmiennej. Jako demo wpisz zmienną, którą dodaliśmy w poprzednim kroku "delayTime"

Przeglądarka zmiennych:

Możesz również zobaczyć wszystkie zmienne i ich wartości, które są dostępne w bieżącym punkcie przerwania. Aby to zademonstrować, jeśli zajrzysz do sekcji „Globalne”, powinieneś znaleźć zmienną „delayTime”.

Edycja wartości zmiennych:

Możesz także edytować wartości zmiennych, co będzie miało natychmiastowy wpływ na zachowanie Twojego kodu. Aby to zademonstrować, kliknij zmienną delayTime w sekcji Variable Viewer i zmień wartość na „100”. Aby pokazać to działanie, wyłącz punkt przerwania wewnątrz pętli, ponownie klikając po lewej stronie numeru wiersza. Naciśnij przycisk Kontynuuj na pasku nawigacyjnym punktu przerwania. Dioda LED na twoim ESP32 powinna teraz migać znacznie szybciej niż wcześniej.

Krok 10: Rozwiązywanie problemów

Rozwiązywanie problemów
Rozwiązywanie problemów

Podczas moich testów odkryłem, że czasami nie mogłem wgrać do ESP32, gdy był podłączony do ESP-prog, i nie mogłem rozgryźć, dlaczego tak się stało, ponieważ przez większość czasu mogłem wgrywać bez jakieś problemy. Stwierdziłem, że mogę po prostu odłączyć ESP32 i ESP-Prog, wgrać kod do ESP32, a następnie podłączyć je ponownie i będzie działać dobrze.

Krok 11: Podsumowanie

Myślę, że to naprawdę fajne narzędzie, które można dodać do zestawu narzędzi, aby pomóc zorientować się, co dzieje się w twoim projekcie.

Chciałbym usłyszeć, czy uznasz to za przydatne!. Daj mi znać w komentarzach poniżej lub dołącz do mnie i kilku innych twórców na moim serwerze Discord, gdzie możemy omówić ten temat lub inny związany z twórcą, ludzie są tam bardzo pomocni, więc jest to świetne miejsce do zawieszenia na zewnątrz.

Chciałbym również bardzo podziękować moim Sponsorom Github, którzy pomagają we wspieraniu tego, co robię, naprawdę to doceniam. Jeśli nie wiesz, Github dopasowuje sponsoring przez pierwszy rok, więc jeśli dokonasz sponsoringu, dopasują go w 100% przez następne kilka miesięcy. Dziękuje za przeczytanie!

Zalecana: