Sadržaj:

Kako koristiti debager na ESP32: 11 koraka (sa slikama)
Kako koristiti debager na ESP32: 11 koraka (sa slikama)

Video: Kako koristiti debager na ESP32: 11 koraka (sa slikama)

Video: Kako koristiti debager na ESP32: 11 koraka (sa slikama)
Video: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Juli
Anonim
Kako koristiti program za ispravljanje pogrešaka na ESP32
Kako koristiti program za ispravljanje pogrešaka na ESP32

Jeste li ikada poželjeli zaviriti u svoj kôd da vidite zašto se ponaša tako kako jeste? Tradicionalno u projektima ESP32, morali biste dodati beskonačne ispise da biste pokušali shvatiti što se događa, ali postoji bolji način!

Otklanjanje grešaka je način da vidite što se događa u određenim dijelovima vašeg koda i isprobate različite vrijednosti varijabli bez ponovnog sastavljanja koda, obično nam to nije nešto dostupno na ugrađenim projektima, ali u ovom vodiču ću vam pokazati kako ga koristiti na ESP32.

U ovom vodiču ću vam pokazati kako postaviti hardver, softver i pokazati jednostavan primjer korištenja programa za otklanjanje grešaka.

Supplies

  • ESP -Prog - Ovo je ploča potrebna za otklanjanje grešaka
    • Tačnu koju sam kupio*
    • 5 USD jeftinije, ali nisam ga testirao*
  • ESP32 koji izbija pin 12, 13, 14, 15

    • Adafruit pero Huzzah32
    • D1 Mini ESP32*
  • [NEOBVEZNO] Štit za otklanjanje grešaka prodajem na Tindieju

    • Perje Huzzah32
    • D1 Mini ESP32

* = Partnerska veza

Korak 1: Pogledajte video

Image
Image

Imam video na ovu temu ako ga želite pogledati.

Na svom kanalu obično snimam videozapise zasnovane na ESP8266 i ESP32, pa ako vas to zanima, provjerite!

Korak 2: Hardver - dijelovi i ožičenje

Hardver - dijelovi i ožičenje
Hardver - dijelovi i ožičenje
Hardver - dijelovi i ožičenje
Hardver - dijelovi i ožičenje
Hardver - dijelovi i ožičenje
Hardver - dijelovi i ožičenje

Za korištenje programa za otklanjanje pogrešaka potreban vam je samo ESP-Prog i gotovo svaka ploča ESP32 (veze do njih u ranijem koraku)

ESP-Prog:

ESP-Prog je ploča dizajnirana od strane espressifa, proizvođača čipova ESP32 i ESP8266. Povezuje se sa JTAG pinovima ESP32 kako bi nam omogućio upotrebu ispravljača grešaka. Može se koristiti i za programiranje ESP32 ploča, ali to ovde neću pokrivati.

ESP32 ploča:

Za ovo možete koristiti u osnovi bilo koju ESP32 ploču nakon što probije JTAG pinove, a to su 12, 13, 14 i 15. Testirao sam i Adafruit pero Huzzah32 i D1 Mini 32 ploču i obje su radile dobro.

Imajte na umu da možete koristiti JTAG pinove u skici sa otklanjanjem grešaka, na primjer, ugrađena LED dioda Huzzah32 ploče nalazi se na pinu 13, tako da je ne možete koristiti za otklanjanje grešaka.

Ožičenje:

Da biste povezali ESP-Prog s ESP32, samo upotrijebite vodič za ožičenje kako je prikazano na gornjoj slici. Provjerite dijagram ožičenja vaše ESP32 ploče ako odmah ne vidite odgovarajuće pinove jer ponekad koriste drugu shemu imenovanja.

Otklanjanje grešaka:

Ovo su opcionalno, ali prodajem neke štitove na Tindieju za Huzzah32 i D1 Mini 32 koji čine povezivanje ESP-Proga zaista jednostavnim, izbijaju odgovarajuće pinove na IDC konektor koji možete koristiti vrpčani kabel za direktno povezivanje štit i ESP-Prog

Korak 3: Hardver - postavljanje upravljačkog programa

Hardver - Postavljanje upravljačkog programa
Hardver - Postavljanje upravljačkog programa
Hardver - Postavljanje upravljačkog programa
Hardver - Postavljanje upravljačkog programa
Hardver - Postavljanje upravljačkog programa
Hardver - Postavljanje upravljačkog programa

Da bismo koristili ESP-prog za otklanjanje grešaka, moramo za njega instalirati odgovarajuće upravljačke programe. PlatformIO nudi neke korake za to ovdje, ali ja ću proći kroz Windows korake u ovom vodiču.

  1. Preuzmite i instalirajte FTDI upravljačke programe za ESP-Prog odavde, pomaknite se udesno za preuzimanje verzije "setup executable" da biste olakšali.
  2. Preuzmite i instalirajte alat Zadig odavde, što nam omogućava da instaliramo generički upravljački program potreban za otklanjanje grešaka.
  3. Kada je ESP-Prog priključen, otvorite Zadig
  4. U aplikaciji Zadig, pod "Opcije" kliknite "Popiši sve uređaje"
  5. Sada će se popuniti padajući izbornik u Zadigu, odaberite opciju "Dual RS232-HS (Interface 0)". Pobrinite se da odaberete sučelje 0!
  6. Desno od zelene strelice potrebno je odabrati "WinUSB", a zatim kliknite "Zamijeni upravljački program"

Kada to završi, upravljački programi trebaju biti podešeni za upotrebu!

Napomena: Ako promijenite USB port koji koristite za ESP-Prog, možda ćete morati ponovo ponoviti korake 3-6. Ako dobijete grešku kao što je prikazano na gornjoj slici prilikom otklanjanja grešaka, morate ponoviti korake.

Korak 4: Softver: Instaliranje PlatformIO

Softver: Instaliranje PlatformIO
Softver: Instaliranje PlatformIO
Softver: Instaliranje PlatformIO
Softver: Instaliranje PlatformIO
Softver: Instaliranje PlatformIO
Softver: Instaliranje PlatformIO

PlatformIO je IDE za razvoj sa različitim različitim ugrađenim okvirima, uključujući Arduino ekosistem. Kompliciranije je za korištenje od nečeg poput Arduino IDE-a, ali je vrlo moćno i ima neke značajke koje Arduino IDE-u jako nedostaju, poput automatskog dovršavanja.

Za upotrebu programa za otklanjanje grešaka potrebno je da PlatformIO. Ako ste već upoznati s PlatformIO -om, slobodno preskočite nekoliko koraka unaprijed.

  • Preuzmite i instalirajte Visual Studio Code (VS kod) sa veze navedene na web stranici PlatformIO.org
  • Otvorite VS kod i otvorite meni proširenja, dugme je istaknuto na gornjoj slici
  • Upišite "platformio" u pretraživanje, odaberite ga i kliknite instaliraj.

Korak 5: Softver: Korištenje PlatformIO

Softver: Korištenje PlatformIO
Softver: Korištenje PlatformIO
Softver: Korištenje PlatformIO
Softver: Korištenje PlatformIO
Softver: Korištenje PlatformIO
Softver: Korištenje PlatformIO

Korištenje PlatformIO je malo drugačije od korištenja Arudino IDE -a, pa ćemo u ovom koraku samo pokriti osnove dobivanja primjera na ploči.

Otvaranje primjera:

  1. Pritisnite gumb Početna na alatnoj traci PlatformIO (Kao što je prikazano na slici)
  2. Kliknite gumb "Primjeri projekta"
  3. Odaberite primjer "Arduino-blink" u odjeljku Espressif 32

Ovo će otvoriti uzorak blink projekta. Izgled PlatformIO -a prilično se razlikuje u odnosu na Arduino projekt, pa idemo kroz osnove.

Gdje je kod?

Kôd vašeg projekta bit će pohranjen u mapi "src", za primjer treptaja vidjet ćete datoteku "blink.cpp", ta datoteka je ista kao vaša datoteka skice (.ino) u Arduino projektu.

Kako da konfigurišem svoju ploču?

Konfiguracije vašeg projekta čuvaju se u datoteci "platformio.ini" u vašem projektu. Ovo je zapravo jedna od mojih omiljenih stvari o PlatformIO -u u odnosu na Arduino IDE, nikad mi nije imalo smisla da postavke ploče nisu vezane za skice.

Primjer.ini sadrži definicije za više različitih ploča, ali da pojednostavimo stvari, izbrišimo dvije donje definicije.

Gdje mogu postaviti svoj COM port?

PlatformIO će zapravo automatski pokušati pronaći odgovarajući COM port koji će se koristiti, tako da se zapravo možete izvući ako ništa ne postavite za ovo. Ali ako imate više COM portova, što ćete učiniti pri korištenju programa za otklanjanje grešaka, mislim da ima smisla postaviti poseban koji vam je potreban. Možete vidjeti različite uređaje koje imate klikom na odjeljak "Uređaji" na kartici početne stranice i možete postaviti koji je vaš ESP32 u "platformio.ini" dodavanjem konfiguracije "upload_port".

Kako da učitam svoj kôd?

Kliknite na dugme Upload (ikona je strelica koja pokazuje desno) i trebalo bi da kompajlira i otpremi kôd. Sada biste trebali imati trepćuću LED diodu na ploči.

Korak 6: Otklanjanje grešaka: potencijalna koža od banane

Otklanjanje grešaka: potencijalna koža od banane!
Otklanjanje grešaka: potencijalna koža od banane!
Otklanjanje grešaka: potencijalna koža od banane!
Otklanjanje grešaka: potencijalna koža od banane!
Otklanjanje grešaka: potencijalna koža od banane!
Otklanjanje grešaka: potencijalna koža od banane!

Ovo je nešto što me zateklo dok sam ovo pripremao i nadam se da će biti ispravljeno dok ne probate, ali mislio sam da je važno otići odavde.

U vrijeme izrade ovog vodiča najnovija verzija PlatformIO je 4.3.0 i ima grešku koja se odnosi na mogućnost otklanjanja grešaka. Srećom, prilično lako možemo nadograditi na najnoviju razvojnu verziju koja rješava problem.

Na početnoj stranici provjerite verziju platforme PlatformIO, ako je "4.3.0", izvedite sljedeće korake.

  1. Na alatnoj traci PlatformIO kliknite ikonu terminala
  2. U vrsti terminala: pio upgrade --dev
  3. RestartVS kôd i PlatfromIO treba ažurirati

Korak 7: Otklanjanje grešaka: Konfiguracija

Otklanjanje grešaka: konfiguracija
Otklanjanje grešaka: konfiguracija

Moramo urediti datoteku "PlatofrmIO.ini" da bismo omogućili otklanjanje grešaka, trebamo joj dodati samo dvije stvari.

debug_tool = esp-prog

Ovo postavlja alat za otklanjanje grešaka koji koristimo.

debug_init_break = podešavanje tbreak -a

Ovo je trik koji smo naučili iz videa Andress Spiess o otklanjanju grešaka na ESP32. Otkrivaču grešaka govori da se zaustavi u postavljanju naše aplikacije.

Korak 8: Otklanjanje grešaka: Pokretanje otklanjanja grešaka

Otklanjanje grešaka: Pokretanje otklanjanja grešaka
Otklanjanje grešaka: Pokretanje otklanjanja grešaka
Otklanjanje grešaka: Pokretanje otklanjanja grešaka
Otklanjanje grešaka: Pokretanje otklanjanja grešaka
Otklanjanje grešaka: Pokretanje otklanjanja grešaka
Otklanjanje grešaka: Pokretanje otklanjanja grešaka
Otklanjanje grešaka: Pokretanje otklanjanja grešaka
Otklanjanje grešaka: Pokretanje otklanjanja grešaka

Prije nego što krenemo u to, napravit ćemo manju promjenu u skici koja će vam olakšati demonstraciju onoga što možete učiniti s otklanjanjem pogrešaka.

  1. Kreirajte novu varijablu, "int delayTime = 1000;" izvan bilo kojih metoda, to će ga učiniti globalnom varijablom.
  2. Zamijenite broj unutar poziva za odgodu u petlji ovom novom varijablom: delay (delayTime);

Otpremite kôd na ploču još jednom, a zatim za početak otklanjanja grešaka, na alatnoj traci kliknite "Pokreni", a zatim "Pokreni otklanjanje grešaka"

Vidjet ćete kako se stvari kreću u prozoru terminala, ali čak i kada to kaže da je uspjelo, ako kliknete na "Debug Console" vidjet ćete da još uvijek radi, bit će potrebno nekoliko sekundi da se završi.

Ako je sve prošlo kako ste očekivali, otklonjivač pogrešaka će se zaustaviti na početku postavljanja.

Korak 9: Otklanjanje grešaka: osnovna upotreba

Otklanjanje grešaka: osnovna upotreba
Otklanjanje grešaka: osnovna upotreba
Otklanjanje grešaka: osnovna upotreba
Otklanjanje grešaka: osnovna upotreba
Otklanjanje grešaka: osnovna upotreba
Otklanjanje grešaka: osnovna upotreba
Otklanjanje grešaka: osnovna upotreba
Otklanjanje grešaka: osnovna upotreba

Pokrijmo neke osnove onoga što možete učiniti s otklanjanjem pogrešaka

Kreiranje tačaka prekida:

Tačka prekida je tačka vašeg koda na kojoj želite da se debager zaustavi. Da biste stvorili tačku prekida, kliknite lijevo od broja retka. Kao demonstraciju, dodajte tačku prekida u prvi red u metodi petlje.

Navigacija tačke prekida:

Za kretanje između tačke prekida ili prelazak na sljedeći red koda možete koristiti alate koji će se pojaviti na vrhu ekrana. Pritisnite dugme "nastavi" (izgleda kao dugme za reprodukciju) da biste premjestili tačku prekida koju smo upravo stvorili unutar petlje.

Promenljivi satovi:

Promenljivi satovi omogućavaju vam praćenje vrednosti promenljivih kada se debager zaustavi na tački prekida. Da biste dodali novu varijablu, možete kliknuti na ikonu +, a zatim samo unijeti naziv varijable. Kao demonstraciju upišite varijablu koju smo dodali u prethodnom koraku "delayTime"

Preglednik varijabli:

Također možete vidjeti sve varijable i njihove vrijednosti koje su dostupne na vašoj trenutnoj točki prekida. Da biste to demonstrirali, ako pogledate odjeljak "Global", trebali biste pronaći varijablu "delayTime".

Uređivanje vrijednosti varijabli:

Također možete urediti vrijednosti varijabli i to će imati trenutni učinak na ponašanje kodova. Da biste to pokazali, kliknite na varijablu delayTime u odjeljku Preglednik varijabli i promijenite vrijednost na "100". Da biste prikazali ovo funkcioniranje, onemogućite točku prekida unutar petlje ponovnim klikom lijevo od broja retka. Pritisnite dugme za nastavak na navigacijskoj traci tačke prekida. LED dioda na vašem ESP32 bi sada trebala treptati mnogo brže nego prije.

Korak 10: Rješavanje problema

Rješavanje problema
Rješavanje problema

Tokom testiranja otkrio sam da ponekad ne mogu otpremiti na ESP32 dok je bio spojen na ESP-prog, te nisam mogao shvatiti obrazac zašto se to dogodilo, jer sam većinu vremena mogao učitavati bez bilo kakvih problema. Otkrio sam da mogu jednostavno odspojiti ESP32 i ESP-Prog, učitati kôd na ESP32, a zatim ih ponovo spojiti i to će dobro funkcionirati.

Korak 11: Zaključak

Mislim da je ovo zaista super alat za dodavanje u okvir s alatima kako biste lakše shvatili što se događa unutar vašeg projekta.

Volio bih čuti ako smatrate da je ovo korisno !. Javite mi u komentarima ispod ili se pridružite meni i gomili drugih proizvođača na mom Discord serveru, gdje možemo razgovarati o ovoj temi ili o bilo kojoj drugoj temi vezanoj za proizvođača, ljudi su tu od velike pomoći, pa je to odlično mjesto za objesiti van.

Također bih se želio zahvaliti mojim Github sponzorima koji mi podržavaju ono što radim, zaista to cijenim. Ako ne znate, Github se podudara sa sponzorstvima prve godine, pa ako napravite sponzorstvo, oni će mu odgovarati 100% sljedećih nekoliko mjeseci. Hvala na čitanju!

Preporučuje se: