Innholdsfortegnelse:

Slik bruker du en feilsøker på en ESP32: 11 trinn (med bilder)
Slik bruker du en feilsøker på en ESP32: 11 trinn (med bilder)

Video: Slik bruker du en feilsøker på en ESP32: 11 trinn (med bilder)

Video: Slik bruker du en feilsøker på en ESP32: 11 trinn (med bilder)
Video: Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! 2024, November
Anonim
Hvordan bruke en feilsøking på en ESP32
Hvordan bruke en feilsøking på en ESP32

Har du noen gang ønsket å ta en titt på koden din for å se hvorfor den oppfører seg som den er? Tradisjonelt i ESP32 -prosjekter ville du ha måttet legge til endeløs utskriftserklæring for å prøve å finne ut hva som foregikk, men det er en bedre måte!

En feilsøkingsfunksjon er en måte å se hva som skjer på bestemte deler av koden din og å prøve forskjellige variabelverdier uten å kompilere koden din på nytt, vanligvis er dette ikke noe som er tilgjengelig for oss på innebygde prosjekter, men i denne veiledningen vil jeg vise deg hvordan du bruker den på en ESP32.

I denne veiledningen viser jeg deg hvordan du konfigurerer maskinvaren, konfigurerer programvaren og viser et enkelt eksempel på bruk av feilsøkingsprogrammet.

Rekvisita

  • ESP -Prog - Dette er brettet som trengs for feilsøking

    • Akkurat den jeg kjøpte*
    • $ 5 Billigere, men jeg har ikke testet den*
  • En ESP32 som bryter ut pinne 12, 13, 14, 15

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32*
  • [Valgfritt] Debug Shield jeg selger på Tindie

    • Fjær Huzzah32
    • D1 Mini ESP32

* = Tilknyttet lenke

Trinn 1: Sjekk videoen

Image
Image

Jeg har en video om dette emnet hvis du vil sjekke det ut.

På kanalen min lager jeg vanligvis ESP8266- og ESP32 -baserte videoer, så hvis du er interessert i dem, kan du sjekke det ut!

Trinn 2: Maskinvare - Deler og ledninger

Maskinvare - Deler og ledninger
Maskinvare - Deler og ledninger
Maskinvare - Deler og ledninger
Maskinvare - Deler og ledninger
Maskinvare - Deler og ledninger
Maskinvare - Deler og ledninger

For å bruke feilsøkingsprogrammet trenger du bare en ESP-Prog og nesten et hvilket som helst ESP32-kort (lenker til disse i et tidligere trinn)

ESP-Prog:

ESP-Prog er et brett designet av espressif, produsentene av ESP32- og ESP8266-brikkene. Den kobles til JTAG -pinner på ESP32 slik at vi kan bruke feilsøkingsprogrammet. Den kan også brukes til programmering av ESP32 -kort, men jeg vil ikke dekke det her.

ESP32 Board:

Du kan i utgangspunktet bruke et hvilket som helst ESP32 -kort til dette når det bryter ut JTAG -pinnene, som er 12, 13, 14 og 15. Jeg har testet både en Adafruit fjær Huzzah32 og et D1 Mini 32 -kort, og de fungerte bra.

Vær oppmerksom på at du kan bruke JTAG-pinnene i skissen din med feilsøkingsprogrammet, for eksempel er den innebygde LED-en på Huzzah32-kortet på pinne 13, så du kan ikke bruke den mens du feilsøker.

Kabling:

For å koble ESP-Prog til ESP32, bare bruk ledningsføringsguiden som vist på bildet ovenfor. Sjekk med koblingsskjemaet til ESP32 -kortet hvis du ikke umiddelbart ser de riktige pinnene, ettersom de noen ganger bruker et annet navnesystem.

Debug Shields:

Disse er valgfrie, men jeg selger noen skjold på Tindie for Huzzah32 og D1 Mini 32 som gjør tilkoblingen av ESP-Prog veldig enkel, det bryter ut de riktige pinnene til en IDC-kontakt som du kan bruke en båndkabel for å koble direkte mellom skjoldet og ESP-Prog

Trinn 3: Maskinvare - Driveroppsett

Maskinvare - Driveroppsett
Maskinvare - Driveroppsett
Maskinvare - Driveroppsett
Maskinvare - Driveroppsett
Maskinvare - Driveroppsett
Maskinvare - Driveroppsett

For å bruke ESP-prog til feilsøking må vi installere de riktige driverne for den. PlatformIO gir noen trinn for det her, men jeg vil gå gjennom trinnene i Windows i denne guiden.

  1. Last ned og installer FTDI-driverne for ESP-Prog herfra, bla til høyre for å laste ned "oppsett kjørbar" versjon for å gjøre det enklere.
  2. Last ned og installer verktøyet Zadig herfra, dette lar oss installere en generisk driver som trengs for feilsøking.
  3. Når ESP-Prog er plugget inn, åpner du Zadig
  4. I Zadig -programmet, under "Alternativer", klikker du på "Liste over alle enheter"
  5. Rullegardinmenyen i Zadig vil nå bli befolket, velg alternativet "Dual RS232-HS (grensesnitt 0)". Sørg for at det er grensesnitt 0 du velger!
  6. Til høyre for den grønne pilen bør "WinUSB" velges, og klikk deretter på "Erstatt driver"

Når det er ferdig, bør driverne være konfigurert for bruk!

Merk: Hvis du endrer USB-porten du bruker for ESP-Prog, må du kanskje gjenta trinn 3-6 igjen. Hvis du får en feil som vist på bildet ovenfor når du feilsøker, må du gjenta trinnene.

Trinn 4: Programvare: Installere PlatformIO

Programvare: Installere PlatformIO
Programvare: Installere PlatformIO
Programvare: Installere PlatformIO
Programvare: Installere PlatformIO
Programvare: Installere PlatformIO
Programvare: Installere PlatformIO

PlatformIO er en IDE for utvikling med forskjellige forskjellige innebygde rammer, inkludert Arduino-økosystemet. Det er mer komplisert å bruke enn noe som Arduino IDE, men det er veldig kraftig og har noen funksjoner som Arduino IDE sterkt savner, for eksempel automatisk fullføring.

Det kreves for PlatformIO å bruke feilsøkingsprogrammet. Hvis du allerede er kjent med PlatformIO, kan du hoppe over et par trinn.

  • Last ned og installer Visual Studio Code (VS Code) fra lenken på PlatformIO.org -nettstedet
  • Åpne VS -kode, og åpne utvidelsesmenyen, knappen er uthevet på bildet ovenfor
  • Skriv "platformio" i søket, velg det og klikk på installer.

Trinn 5: Programvare: Bruke PlatformIO

Programvare: Bruke PlatformIO
Programvare: Bruke PlatformIO
Programvare: Bruke PlatformIO
Programvare: Bruke PlatformIO
Programvare: Bruke PlatformIO
Programvare: Bruke PlatformIO

Å bruke PlatformIO er litt annerledes enn å bruke Arudino IDE, så i dette trinnet vil vi bare dekke det grunnleggende for å få et eksempel til å kjøre på et brett.

Åpne et eksempel:

  1. Klikk på Hjem -knappen på PlatformIO -verktøylinjen (som vist på bildet)
  2. Klikk på "Prosjekteksempler" -knappen
  3. Velg eksempelet "Arduino-blink" under seksjonen Espressif 32

Dette åpner et eksempel på blinkprosjekt. Oppsettet til en PlatformIO er ganske annerledes enn et Arduino -prosjekt, så la oss gå gjennom det grunnleggende.

Hvor er koden?

Koden for prosjektet ditt vil bli lagret i "src" -mappen, for blinkeksemplet vil du se en "blink.cpp" -fil, denne filen er den samme som din skissefil (.ino) i et Arduino -prosjekt.

Hvordan konfigurerer jeg brettet mitt?

Konfigurasjoner for prosjektet lagres i en "platformio.ini" -fil i prosjektet. Dette er faktisk en av mine favoritt ting med PlatformIO sammenlignet med Arduino IDE, det var aldri fornuftig for meg at brettinnstillinger ikke var knyttet til skisser.

Eksemplet.ini inneholder definisjoner for flere forskjellige tavler, men for å holde ting enkelt, la oss slette de to nederste definisjonene.

Hvor setter jeg COM -porten min?

PlatformIO vil faktisk automatisk prøve å finne den riktige COM -porten som skal brukes, slik at du faktisk kan slippe unna med å ikke angi noe for dette. Men hvis du har flere COM -porter, som du vil gjøre når du bruker feilsøkingsprogrammet, synes jeg det er fornuftig å angi den spesifikke du trenger. Du kan se de forskjellige enhetene du har ved å klikke på "Enheter" -delen i startfanen, og du kan angi hvilken ESP32 din er i "platformio.ini" ved å legge til en "upload_port" -konfigurasjon.

Hvordan laster jeg opp koden min?

Klikk på Last opp -knappen (ikonet er en pil som peker til høyre), og den skal kompilere og laste opp koden. Du bør nå ha en blinkende LED på brettet.

Trinn 6: Debugging: Potensiell bananskinn

Debugging: Potensiell bananskinn!
Debugging: Potensiell bananskinn!
Debugging: Potensiell bananskinn!
Debugging: Potensiell bananskinn!
Debugging: Potensiell bananskinn!
Debugging: Potensiell bananskinn!

Dette er noe som fanget meg da jeg forberedte dette og forhåpentligvis vil bli fikset når du prøver det, men jeg syntes det var viktig å forlate her.

På tidspunktet for å lage denne veiledningen, er den nyeste versjonen av PlatformIO 4.3.0, og den har en feil som kan relateres til å kunne feilsøke. Heldigvis kan vi oppdatere til den nyeste utviklingsversjonen ganske enkelt som løser problemet.

Sjekk på startsiden versjonen av PlatformIO core, hvis den er "4.3.0", utfør følgende trinn.

  1. Klikk på terminalikonet på PlatformIO -verktøylinjen
  2. I terminaltypen: pio upgrade --dev
  3. RestartVS -kode og PlatfromIO bør oppdateres

Trinn 7: Debugging: Konfigurasjon

Feilsøking: Konfigurasjon
Feilsøking: Konfigurasjon

Vi trenger å redigere "PlatofrmIO.ini" -filen for å aktivere feilsøking, vi trenger bare å legge til to ting i den.

debug_tool = esp-prog

Dette angir feilsøkingsverktøyet vi bruker.

debug_init_break = tbreak oppsett

Dette er et triks vi lærte av Andress Spiess 'video om feilsøking på ESP32. Det forteller feilsøkingsprogrammet å stoppe i oppsettet av applikasjonen vår.

Trinn 8: Debugging: Start debugging

Debugging: Starter feilsøking
Debugging: Starter feilsøking
Debugging: Starter feilsøking
Debugging: Starter feilsøking
Debugging: Starter feilsøking
Debugging: Starter feilsøking
Debugging: Starter feilsøking
Debugging: Starter feilsøking

Før vi går inn på det, vil vi gjøre en liten endring av skissen som vil gjøre det lettere å demonstrere hva du kan gjøre med feilsøkingen.

  1. Lag en ny variabel, "int delayTime = 1000;" utenom noen metoder, vil dette gjøre det til en global variabel.
  2. Erstatt nummeret inne i forsinkelsesanropene i sløyfen med denne nye variabelen: delay (delayTime);

Last opp koden til brettet en gang til, for å starte feilsøking, klikk på "Kjør" og deretter "Start feilsøking" på verktøylinjen.

Du vil se tingene bevege seg i terminalvinduet, men selv når det står at det var suksess, hvis du klikker på "Debug Console" vil du se at det fortsatt fungerer, vil det ta noen sekunder å fullføre.

Hvis alt gikk som forventet, vil du se feilsøkingsprogrammet stoppe ved starten av oppsettet.

Trinn 9: Debugging: Grunnleggende bruk

Debugging: Grunnleggende bruk
Debugging: Grunnleggende bruk
Debugging: Grunnleggende bruk
Debugging: Grunnleggende bruk
Feilsøking: grunnleggende bruk
Feilsøking: grunnleggende bruk
Debugging: Grunnleggende bruk
Debugging: Grunnleggende bruk

La oss dekke noen av det grunnleggende om hva du kan gjøre med feilsøkingsprogrammet

Opprette bruddpunkter:

Et brytpunkt er et punkt i koden din der du vil at feilsøkingsprogrammet skal stoppe. For å opprette et brytpunkt, klikk til venstre for linjenummeret. Som demo, legg til brytningspunkt på den første linjen i loop -metoden.

Breakpoint Navigation:

For å flytte mellom bruddpunkt eller gå til neste kodelinje, kan du bruke verktøyene som vises øverst på skjermen. Trykk på "fortsett" -knappen (ser ut som en avspillingsknapp) for å flytte brytpunktet vi nettopp opprettet inne i løkken.

Variable klokker:

Variable klokker lar deg overvåke verdien av variabler når feilsøkingen stoppes ved et brytpunkt. For å legge til en ny variabelklokke, kan du klikke på + -ikonet og deretter skrive inn navnet på variabelen. Som en demo skriver du inn variabelen vi la til i forrige trinn "delayTime"

Variable Viewer:

Du kan også se alle variablene og verdiene deres som er tilgjengelige på ditt nåværende brytpunkt. For å demonstrere dette, hvis du ser i delen "Global", bør du finne varianten "delayTime".

Redigere verdien av variabler:

Du kan også redigere verdiene til variabler, og det får umiddelbar virkning på kodenes oppførsel. For å demonstrere dette, klikk på delayTime -variabelen i delen Variable Viewer, og endre verdien til "100". For å vise dette fungerer, deaktiver brytepunktet inne i løkken ved å klikke til venstre for linjenummeret igjen. Trykk på fortsett -knappen på navigasjonslinjen for brytpunkt. Lysdioden på ESP32 skal nå blinke mye raskere enn før.

Trinn 10: Feilsøking

Feilsøking
Feilsøking

Jeg fant ut under testen at jeg noen ganger ikke kunne laste opp til ESP32 mens den var koblet til ESP-prog, og at jeg ikke kunne finne ut et mønster på hvorfor dette skjedde, fordi jeg for det meste kunne laste opp uten noen problemer. Jeg fant ut at jeg bare kunne koble fra ESP32 og ESP-Prog, laste opp koden til ESP32 og deretter koble dem til igjen, og det ville fungere fint.

Trinn 11: Konklusjon

Jeg synes dette er et veldig kult verktøy å legge til i verktøykassen for å finne ut hva som skjer inne i prosjektet ditt.

Jeg vil gjerne høre om du synes dette er nyttig !. Gi meg beskjed i kommentarene nedenfor, eller bli med meg og en haug med andre beslutningstakere på Discord -serveren min, hvor vi kan diskutere dette emnet eller en annen makerrelatert en du har, folk er veldig hjelpsomme der, så det er et flott sted å henge ute.

Jeg vil også rette en stor takk til mine Github -sponsorer som hjelper meg med å støtte det jeg gjør, jeg setter virkelig pris på det. Hvis du ikke vet det, matcher Github sponsorater det første året, så hvis du lager et sponsing, vil de matche det 100% de neste månedene. Takk for at du leste!

Anbefalt: