Obsah:

Ako používať debugger na ESP32: 11 krokov (s obrázkami)
Ako používať debugger na ESP32: 11 krokov (s obrázkami)

Video: Ako používať debugger na ESP32: 11 krokov (s obrázkami)

Video: Ako používať debugger na ESP32: 11 krokov (s obrázkami)
Video: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, November
Anonim
Ako používať debugger na ESP32
Ako používať debugger na ESP32

Už ste niekedy chceli nahliadnuť do svojho kódu a zistiť, prečo sa správa tak, ako je? Tradične v projektoch ESP32 by ste museli pridať nekonečné tlačové vyhlásenie, aby ste sa pokúsili zistiť, čo sa deje, ale existuje lepší spôsob!

Ladiaci program je spôsob, ako vidieť, čo sa deje v konkrétnych častiach kódu, a vyskúšať rôzne hodnoty premenných bez toho, aby ste museli znova skompilovať kód, zvyčajne to nie je k dispozícii pre vložené projekty, ale v tejto príručke vám ukážem ako ho používať na ESP32.

V tejto príručke vám ukážem nastavenie hardvéru, nastavenie softvéru a jednoduchý príklad použitia ladiaceho programu.

Zásoby

  • ESP -Prog - Toto je doska potrebná na ladenie

    • Presne ten, ktorý som kúpil*
    • 5 dolárov lacnejší, ale netestoval som to*
  • ESP32, ktorý prerušuje kolíky 12, 13, 14, 15

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32*
  • [VOLITEĽNÉ] Debug Shield predávam na Tindie

    • Perie Huzzah32
    • D1 Mini ESP32

* = Partnerský odkaz

Krok 1: Pozrite si video

Image
Image

Mám video na túto tému, ak si ho chcete pozrieť.

Na svojom kanáli obvykle robím videá založené na ESP8266 a ESP32, takže ak vás to zaujíma, pozrite sa na to!

Krok 2: Hardvér - diely a zapojenie

Hardware - diely a zapojenie
Hardware - diely a zapojenie
Hardware - diely a zapojenie
Hardware - diely a zapojenie
Hardware - diely a zapojenie
Hardware - diely a zapojenie

Na použitie debuggeru potrebujete iba ESP-Prog a takmer akúkoľvek dosku ESP32 (odkazy na ne v predchádzajúcom kroku)

ESP-Prog:

ESP-Prog je doska navrhnutá spoločnosťou espressif, výrobcami čipov ESP32 a ESP8266. Pripája sa k pinom JTAG na ESP32, čo nám umožňuje používať debugger. Dá sa použiť aj na programovanie dosiek ESP32, ale to tu nebudem pokrývať.

Doska ESP32:

Na to môžete použiť v podstate akúkoľvek dosku ESP32, akonáhle vylomí piny JTAG, ktoré sú 12, 13, 14 a 15. Testoval som dosku Aduzruit Feather Huzzah32 aj D1 Mini 32 a obe fungovali dobre.

Upozorňujeme, že piny JTAG môžete použiť vo svojej skici pomocou debuggera, napríklad vstavaná LED dióda dosky Huzzah32 je na pine 13, takže ju nemôžete používať pri ladení.

Elektrické vedenie:

Na pripojenie ESP-Prog k ESP32 stačí použiť sprievodcu zapojením, ako je znázornené na obrázku vyššie. Skontrolujte, či schéma zapojenia dosky ESP32 nie je okamžite viditeľná, pretože niekedy používajú inú schému pomenovania.

Ladiace štíty:

Tieto sú voliteľné, ale na Tindie predávam štíty pre Huzzah32 a D1 Mini 32, vďaka ktorým je pripojenie ESP-Prog skutočne jednoduché. Rozpojí príslušné kolíky s konektorom IDC, pomocou ktorého sa môžete prepojiť pomocou plochého kábla. štít a program ESP

Krok 3: Hardvér - Nastavenie ovládača

Hardvér - Nastavenie ovládača
Hardvér - Nastavenie ovládača
Hardvér - Nastavenie ovládača
Hardvér - Nastavenie ovládača
Hardvér - Nastavenie ovládača
Hardvér - Nastavenie ovládača

Aby sme mohli používať ESP-prog na ladenie, musíme preň nainštalovať príslušné ovládače. PlatformIO na to poskytuje niekoľko krokov, ale ja si v tejto príručke prejdem kroky systému Windows.

  1. Tu si stiahnite a nainštalujte ovládače FTDI pre ESP-Prog, posuňte sa doprava a stiahnite si verziu „spustiteľný súbor“, aby ste to uľahčili.
  2. Odtiaľ si stiahnite a nainštalujte nástroj Zadig, čo nám umožní nainštalovať generický ovládač potrebný na ladenie.
  3. Keď je ESP-Prog zapojený, otvorte Zadig
  4. V aplikácii Zadig v časti „Možnosti“kliknite na „Zoznam všetkých zariadení“
  5. Rozbaľovací zoznam v Zadigu bude teraz vyplnený, zvoľte možnosť „Dual RS232-HS (Interface 0)“. Uistite sa, že je to rozhranie 0, ktoré vyberiete!
  6. Vpravo od zelenej šípky by ste mali vybrať „WinUSB“a potom kliknúť na „Nahradiť ovládač“

Po dokončení by mali byť vaše ovládače nastavené na použitie!

Poznámka: Ak zmeníte USB port, ktorý používate pre ESP-Prog, bude možno potrebné znova zopakovať kroky 3-6. Ak sa vám pri ladení zobrazí chyba, ako je znázornené na obrázku vyššie, musíte kroky zopakovať.

Krok 4: Software: Inštalácia PlatformIO

Software: Inštalácia PlatformIO
Software: Inštalácia PlatformIO
Software: Inštalácia PlatformIO
Software: Inštalácia PlatformIO
Software: Inštalácia PlatformIO
Software: Inštalácia PlatformIO

PlatformIO je IDE na vývoj s rôznymi rôznymi vstavanými rámcami, vrátane ekosystému Arduino. Používanie je komplikovanejšie ako niečo ako Arduino IDE, ale je veľmi výkonné a má niektoré funkcie, ktoré Arduino IDE veľmi chýba, napríklad automatické dokončovanie.

PlatformIO vyžaduje používanie ladiaceho programu. Ak už platformio poznáte, pokojne preskočte niekoľko krokov dopredu.

  • Stiahnite si a nainštalujte kód Visual Studio Code (VS Code) z odkazu uvedeného na webovej stránke PlatformIO.org
  • Otvorte kód VS a otvorte ponuku rozšírení, tlačidlo je zvýraznené na obrázku vyššie
  • Do vyhľadávania zadajte „platformio“, vyberte ho a kliknite na nainštalovať.

Krok 5: Software: Používanie PlatformIO

Softvér: Používanie PlatformIO
Softvér: Používanie PlatformIO
Softvér: Používanie PlatformIO
Softvér: Používanie PlatformIO
Softvér: Používanie PlatformIO
Softvér: Používanie PlatformIO

Používanie PlatformIO je trochu iné ako používanie Arudino IDE, takže v tomto kroku si len preberieme základy získania príkladu spustenia na doske.

Úvodný príklad:

  1. Kliknite na tlačidlo Domov na paneli s nástrojmi PlatformIO (Ako je znázornené na obrázku)
  2. Kliknite na tlačidlo „Príklady projektov“
  3. V sekcii Espressif 32 zvoľte príklad „Arduino-blink“

Tým sa otvorí ukážkový projekt žmurknutia. Rozloženie platformyIO je úplne odlišné od projektu Arduino, takže si poďme prejsť základy.

Kde je kód?

Kód pre váš projekt bude uložený v priečinku „src“, pre príklad blikania uvidíte súbor „blink.cpp“, ktorý je rovnaký ako váš súbor skice (.ino) v projekte Arduino.

Ako nakonfigurujem svoju dosku?

Konfigurácie pre váš projekt sú uložené v súbore „platformio.ini“vo vašom projekte. Toto je vlastne jedna z mojich najobľúbenejších vecí na PlatformIO v porovnaní s Arduino IDE, nikdy mi nedávalo zmysel, že nastavenia dosky nie sú viazané na náčrty.

Príklad.ini obsahuje definície pre niekoľko rôznych dosiek, ale aby to nebolo jednoduché, odstráňte dve spodné definície.

Kde nastavím svoj port COM?

PlatformIO sa skutočne automaticky pokúsi nájsť správny port COM, ktorý sa má použiť, takže sa v skutočnosti môžete vyhnúť tomu, že na to nič nenastavíte. Ale ak máte viac COM portov, ktoré budete používať pri použití debuggeru, myslím, že má zmysel nastaviť konkrétny, ktorý potrebujete. Rôzne zariadenia, ktoré máte, môžete vidieť kliknutím na sekciu „Zariadenia“na domovskej karte a môžete nastaviť, ktorý je váš ESP32 v „platformio.ini“pridaním konfigurácie „upload_port“.

Ako môžem nahrať svoj kód?

Kliknite na tlačidlo Nahrať (ikona je šípka smerujúca doprava) a malo by sa skompilovať a nahrať kód. Teraz by ste na doske mali mať blikajúcu diódu LED.

Krok 6: Ladenie: Potenciálna banánová koža

Ladenie: Potenciálna banánová koža!
Ladenie: Potenciálna banánová koža!
Ladenie: Potenciálna banánová koža!
Ladenie: Potenciálna banánová koža!
Ladenie: Potenciálna banánová koža!
Ladenie: Potenciálna banánová koža!

Je to niečo, čo ma chytilo, keď som to pripravoval, a dúfajme, že to bude opravené, keď to vyskúšate, ale myslel som si, že je dôležité odtiaľto odísť.

V čase vytvárania tejto príručky je najnovšia verzia PlatformIO 4.3.0 a má chybu, ktorá súvisí s možnosťou ladenia. Našťastie môžeme aktualizovať na najnovšiu vývojovú verziu celkom jednoducho, čo problém rieši.

Na domovskej stránke skontrolujte verziu jadra PlatformIO, ak je „4.3.0“, vykonajte nasledujúce kroky.

  1. Na paneli s nástrojmi PlatformIO kliknite na ikonu terminálu
  2. V type terminálu: upgrade pio -dev
  3. Kód RestartVS a PlatfromIO by mali byť aktualizované

Krok 7: Ladenie: Konfigurácia

Ladenie: Konfigurácia
Ladenie: Konfigurácia

Na povolenie ladenia potrebujeme upraviť súbor „PlatofrmIO.ini“, stačí k nemu pridať dve veci.

debug_tool = esp-prog

Tým sa nastaví nástroj na ladenie, ktorý používame.

debug_init_break = nastavenie prerušenia

Toto je trik, ktorý sme sa naučili z videa Andressy Spiessovej o ladení na ESP32. Hovorí ladiacemu programu, aby sa zastavil v nastavení našej aplikácie.

Krok 8: Ladenie: Spustenie ladenia

Ladenie: Spustenie ladenia
Ladenie: Spustenie ladenia
Ladenie: Spustenie ladenia
Ladenie: Spustenie ladenia
Ladenie: Spustenie ladenia
Ladenie: Spustenie ladenia
Ladenie: Spustenie ladenia
Ladenie: Spustenie ladenia

Predtým, ako sa do toho pustíme, urobíme menšiu zmenu náčrtu, ktorá uľahčí ukážku toho, čo môžete s ladením robiť.

  1. Vytvorte novú premennú „int delayTime = 1000;“mimo akýchkoľvek metód to urobí globálnu premennú.
  2. Nahraďte číslo vo vnútri oneskorených hovorov v slučke touto novou premennou: delay (delayTime);

Ešte raz nahrajte kód na tabuľu a potom spustite ladenie, na paneli s nástrojmi kliknite na „Spustiť“a potom na „Spustiť ladenie“

V okne terminálu uvidíte, ako sa veci pohybujú, ale aj keď to uvádza, že to bolo úspešné, ak kliknete na „Debug Console“, uvidíte, že to stále funguje, dokončenie bude trvať niekoľko sekúnd.

Ak všetko prebehlo podľa očakávania, ladiaci program sa zastaví na začiatku nastavenia.

Krok 9: Ladenie: Základné použitie

Ladenie: Základné použitie
Ladenie: Základné použitie
Ladenie: Základné použitie
Ladenie: Základné použitie
Ladenie: Základné použitie
Ladenie: Základné použitie
Ladenie: Základné použitie
Ladenie: Základné použitie

Pozrime sa na niektoré základy toho, čo môžete s ladiacim programom robiť

Vytváranie hraničných bodov:

Zlomový bod je bod vášho kódu, kde chcete, aby sa ladiaci program zastavil. Zarážku vytvoríte kliknutím naľavo od čísla riadku. Ako ukážku pridajte bod prerušenia do prvého riadka v metóde cyklu.

Navigácia v zlomových bodoch:

Na pohyb medzi bodom prerušenia alebo prechod na nasledujúci riadok kódu môžete použiť nástroje, ktoré sa zobrazia v hornej časti obrazovky. Stlačením tlačidla „pokračovať“(vyzerá ako tlačidlo prehrávania) presuniete zarážku, ktorú sme práve vytvorili, do slučky.

Variabilné hodinky:

Hodinky s premennými vám umožňujú monitorovať hodnotu premenných, keď je debugger zastavený na bode zlomu. Ak chcete pridať nové hodinky s premennými, kliknite na ikonu + a potom zadajte názov premennej. Ako ukážku zadajte premennú, ktorú sme pridali v predchádzajúcom kroku „delayTime“

Variabilný prehliadač:

Môžete tiež vidieť všetky premenné a ich hodnoty, ktoré sú k dispozícii vo vašom aktuálnom bode zlomu. Aby ste to predviedli, keď sa pozriete do sekcie „Globálne“, mali by ste nájsť premennú „delayTime“.

Úprava hodnoty premenných:

Môžete tiež upraviť hodnoty premenných a okamžite sa to prejaví na správaní vašich kódov. Aby ste to predviedli, kliknite na premennú delayTime v časti Prehliadač premenných a zmeňte hodnotu na „100“. Ak chcete, aby to fungovalo, deaktivujte zarážku v cykle opätovným kliknutím naľavo od čísla riadku. Na navigačnom paneli zarážok stlačte tlačidlo Pokračovať. LED dióda na vašom ESP32 by mala teraz blikať oveľa rýchlejšie ako predtým.

Krok 10: Riešenie problémov

Riešenie problémov
Riešenie problémov

Počas testovania som zistil, že niekedy sa mi nepodarilo nahrať do ESP32, keď bol pripojený k ESP-prog, a nevedel som prísť na vzor, prečo sa to stalo, pretože väčšinu času som mohol nahrávať bez žiadne problémy. Zistil som, že môžem jednoducho odpojiť ESP32 a ESP-Prog, nahrať kód do ESP32 a potom ich znova pripojiť a fungovalo by to dobre.

Krok 11: Otrasy

Myslím si, že je to skutočne skvelý nástroj na pridanie do súboru nástrojov, ktorý vám pomôže zistiť, čo sa deje vo vašom projekte.

Rád by som počul, či vám to príde užitočné. Dajte mi prosím vedieť v nižšie uvedených komentároch alebo sa pripojte ku mne a množstvu ďalších tvorcov na mojom serveri Discord, kde môžeme diskutovať o tejto téme alebo o akomkoľvek inom, čo sa týka výrobcu, ľudia sú tam skutočne nápomocní, takže je to skvelé miesto na zavesenie. von.

Tiež by som chcel veľmi poďakovať svojim sponzorom Github, ktorí pomáhajú podporovať to, čo robím, veľmi si to vážim. Ak neviete, Github sa zhoduje so sponzorstvom pre prvý rok, takže ak urobíte sponzorstvo, niekoľko mesiacov sa s ním 100% vyrovná. Vďaka za prečítanie!

Odporúča: