Taula de continguts:

Com utilitzar un depurador en un ESP32: 11 passos (amb imatges)
Com utilitzar un depurador en un ESP32: 11 passos (amb imatges)

Vídeo: Com utilitzar un depurador en un ESP32: 11 passos (amb imatges)

Vídeo: Com utilitzar un depurador en un ESP32: 11 passos (amb imatges)
Vídeo: Cuando el copiloto me ensucia el sillín 👀😅 #humor #eli #motos 2024, Desembre
Anonim
Com utilitzar un depurador en un ESP32
Com utilitzar un depurador en un ESP32

Alguna vegada heu volgut fer una ullada al vostre codi per veure per què es comporta tal com és? Tradicionalment en els projectes ESP32, haureu hagut d'afegir una interminable declaració d'impressió per intentar esbrinar què passava, però hi ha una manera millor.

Un depurador és una manera de veure què està passant en seccions concretes del vostre codi i de provar diferents valors de variables sense tornar a compilar el vostre codi, normalment això no està disponible per a nosaltres als projectes incrustats, però en aquesta guia us mostraré com utilitzar-lo en un ESP32.

En aquesta guia us mostraré com configureu el maquinari, configureu el programari i mostraré un exemple senzill d'ús del depurador.

Subministraments

  • ESP-Prog: aquest és el tauler necessari per a la depuració

    • Una exacta que he comprat *
    • 5 dòlars més barat, però no ho he provat *
  • Un ESP32 que trenca el pin 12, 13, 14, 15

    • Ploma d'Adafruit Huzzah32
    • D1 Mini ESP32 *
  • [OPCIONAL] Debug Shield que venc a Tindie

    • Feather Huzzah32
    • D1 Mini ESP32

* = Enllaç d'afiliació

Pas 1: mireu el vídeo

Image
Image

Tinc un vídeo sobre aquest tema si el voleu consultar.

Al meu canal normalment faig vídeos basats en ESP8266 i ESP32, de manera que si esteu interessats, comproveu-ho.

Pas 2: Maquinari: peces i cablejat

Maquinari: peces i cablejat
Maquinari: peces i cablejat
Maquinari: peces i cablejat
Maquinari: peces i cablejat
Maquinari: peces i cablejat
Maquinari: peces i cablejat

Per utilitzar el depurador només necessiteu un ESP-Prog i gairebé qualsevol placa ESP32 (enllaços a aquests en un pas anterior)

ESP-Prog:

L'ESP-Prog és una placa dissenyada per espressif, els fabricants dels xips ESP32 i ESP8266. Es connecta als pins JTAG de l’ESP32 per permetre’ns utilitzar el depurador. També es pot utilitzar per programar plaques ESP32, però no ho tractaré aquí.

Junta ESP32:

Podeu utilitzar bàsicament qualsevol tauler ESP32 per a això un cop trencin els pins JTAG, que són 12, 13, 14 i 15. He provat tant una ploma Adafruit Huzzah32 com una placa D1 Mini 32 i tots dos funcionaven bé.

Tingueu en compte que podeu utilitzar els pins JTAG al vostre esbós amb el depurador, per exemple, el LED integrat de la placa Huzzah32 es troba al pin 13, de manera que no podeu utilitzar-lo durant la depuració.

Cablejat:

Per connectar l’ESP-Prog a l’ESP32, només cal que utilitzeu la guia de cablejat tal com es proporciona a la imatge superior. Consulteu amb el diagrama de cablejat de la vostra placa ESP32 si no veieu immediatament els pins adequats, ja que de vegades utilitzen un esquema de noms diferent.

Escuts de depuració:

Aquests són opcionals, però venc alguns blindatges a Tindie per a l’Huzzah32 i el D1 Mini 32 que fan que la connexió de l’ESP-Prog sigui realment senzilla, trenca els pins adequats a un connector IDC que permet connectar directament amb un cable de cinta l’escut i l’ESP-Prog

Pas 3: Maquinari: configuració del controlador

Maquinari: configuració del controlador
Maquinari: configuració del controlador
Maquinari: configuració del controlador
Maquinari: configuració del controlador
Maquinari: configuració del controlador
Maquinari: configuració del controlador

Per utilitzar l’ESP-prog per a la depuració, hem d’instal·lar-hi els controladors adequats. PlatformIO proporciona alguns passos per fer-ho aquí, però seguiré els passos de Windows d'aquesta guia.

  1. Descarregueu i instal·leu els controladors FTDI per a ESP-Prog des d'aquí, desplaceu-vos cap a la dreta per descarregar la versió "configurable executable" per facilitar-la.
  2. Descarregueu i instal·leu l'eina Zadig des d'aquí, això ens permet instal·lar un controlador genèric necessari per a la depuració.
  3. Amb l’ESP-Prog endollat, obriu Zadig
  4. A l'aplicació Zadig, a "Opcions", feu clic a "Llista de tots els dispositius"
  5. Ara es completarà el menú desplegable de Zadig; seleccioneu l'opció "Dual RS232-HS (Interfície 0)". Assegureu-vos que seleccioneu la interfície 0.
  6. A la dreta de la fletxa verda, s'ha de seleccionar "WinUSB" i, a continuació, fer clic a "Substitueix el controlador"

Quan s'acabi, els controladors haurien d'estar configurats per al seu ús.

Nota: Si canvieu el port USB que utilitzeu per a ESP-Prog, potser haureu de repetir els passos 3-6. Si es produeix un error com es mostra a la imatge superior en depurar, haureu de repetir els passos.

Pas 4: programari: instal·lació de PlatformIO

Programari: instal·lació de PlatformIO
Programari: instal·lació de PlatformIO
Programari: instal·lació de PlatformIO
Programari: instal·lació de PlatformIO
Programari: instal·lació de PlatformIO
Programari: instal·lació de PlatformIO

PlatformIO és un IDE per desenvolupar amb diversos marcs incrustats diferents, inclòs l’ecosistema Arduino. És més complicat d’utilitzar que alguna cosa com l’Arduino IDE, però és molt potent i té algunes funcions que a l’Arduino IDE li falten molt, com ara el completament automàtic.

PlatformIO requereix que utilitzi el depurador. Si ja esteu familiaritzat amb PlatformIO, no dubteu a saltar-vos un parell de passos.

  • Descarregueu i instal·leu Visual Studio Code (VS Code) des de l'enllaç que es proporciona al lloc web PlatformIO.org
  • Obriu el codi VS i obriu el menú d'extensions; el botó es ressalta a la imatge superior
  • Escriviu "platformio" a la cerca, seleccioneu-lo i feu clic a Instal·la.

Pas 5: Programari: utilitzant PlatformIO

Programari: utilitzant PlatformIO
Programari: utilitzant PlatformIO
Programari: utilitzant PlatformIO
Programari: utilitzant PlatformIO
Programari: utilitzant PlatformIO
Programari: utilitzant PlatformIO

L’ús de PlatformIO és una mica diferent a l’ús de l’IDE Arudino, de manera que en aquest pas tractarem els conceptes bàsics per fer funcionar un exemple en una placa.

Obrint un exemple:

  1. Feu clic al botó Inici de la barra d'eines PlatformIO (tal com es mostra a la imatge)
  2. Feu clic al botó "Exemples de projectes"
  3. Seleccioneu l'exemple "Arduino-blink" a la secció Espressif 32

Això obrirà un exemple de projecte de parpelleig. El disseny d’un PlatformIO és força diferent en comparació amb un projecte Arduino, així que anem a revisar els conceptes bàsics.

On és el codi?

El codi del vostre projecte s'emmagatzemarà a la carpeta "src", per a l'exemple de parpelleig veureu un fitxer "blink.cpp", aquest fitxer és el mateix que el vostre fitxer d'esbós (.ino) en un projecte Arduino.

Com puc configurar la meva placa?

Les configuracions del vostre projecte es mantenen dins d'un fitxer "platformio.ini" del vostre projecte. Aquesta és en realitat una de les meves coses preferides de PlatformIO en comparació amb el IDE Arduino, mai no va tenir sentit que la configuració de la placa no estigués lligada als esbossos.

L'exemple.ini conté definicions per a diversos taulers diferents, però per simplificar les coses, suprimim les dues definicions inferiors.

On he de configurar el port COM?

De fet, PlatformIO intentarà trobar automàticament el port COM correcte per utilitzar-lo, de manera que podeu evitar-vos sense configurar res. Però si teniu diversos ports COM, que tindreu quan utilitzeu el depurador, crec que té sentit establir el que necessiteu. Podeu veure els diferents dispositius que teniu fent clic a la secció "Dispositius" de la pestanya d'inici i Podeu definir quin és el vostre ESP32 a "platformio.ini" afegint una configuració "upload_port".

Com puc penjar el meu codi?

Feu clic al botó Puja (la icona és una fletxa que apunta cap a la dreta) i hauria de compilar i penjar el codi. Ara hauríeu de tenir un LED parpellejant al tauler.

Pas 6: depuració: pell de plàtan potencial

Depuració: pell de plàtan potencial
Depuració: pell de plàtan potencial
Depuració: pell de plàtan potencial
Depuració: pell de plàtan potencial
Depuració: pell de plàtan potencial
Depuració: pell de plàtan potencial

Això és una cosa que em va atrapar quan estava preparant això i, amb sort, es solucionarà en el moment que ho proveu, però vaig pensar que era important marxar d’aquí.

En el moment de fer aquesta guia, l’última versió de PlatformIO és la 4.3.0 i té un error relacionat amb la possibilitat de depurar. Afortunadament, podem actualitzar a la darrera versió de desenvolupament amb força facilitat que resol el problema.

Comproveu a la pàgina inicial la versió de PlatformIO core, si és "4.3.0", realitzeu els passos següents.

  1. A la barra d'eines PlatformIO, feu clic a la icona del terminal
  2. Al tipus de terminal: pio upgrade --dev
  3. El codi RestartVS i PlatfromIO s’han d’actualitzar

Pas 7: depuració: configuració

Depuració: configuració
Depuració: configuració

Necessitem editar el fitxer "PlatofrmIO.ini" per habilitar la depuració, només cal afegir-hi dues coses.

debug_tool = esp-prog

Això defineix l'eina de depuració que estem utilitzant.

debug_init_break = configuració de detecció

Aquest és un truc que vam aprendre del vídeo d’Andress Spiess sobre la depuració a l’ESP32. Indica al depurador que s'aturi a la configuració de la nostra aplicació.

Pas 8: depuració: inici de la depuració

Depuració: iniciar la depuració
Depuració: iniciar la depuració
Depuració: iniciar la depuració
Depuració: iniciar la depuració
Depuració: iniciar la depuració
Depuració: iniciar la depuració
Depuració: iniciar la depuració
Depuració: iniciar la depuració

Abans d’entrar-hi, farem un petit canvi a l’esbós que facilitarà la demostració del que podeu fer amb la depuració.

  1. Creeu una variable nova, "int delayTime = 1000;" fora de qualsevol mètode, això el convertirà en una variable global.
  2. Substituïu el número dins de les trucades de retard al bucle per aquesta nova variable: delay (delayTime);

Carregueu el codi al tauler una vegada més i, a continuació, per iniciar la depuració, a la barra d'eines, feu clic a "Executa" i després a "Inicia la depuració".

Veureu les coses que es mouen a la finestra del terminal, però fins i tot quan s’afirma que ha estat un èxit, si feu clic a la "Consola de depuració", veureu que encara funciona, trigaran uns segons a acabar-se.

Si tot ha anat com s’esperava, veureu que el depurador s’atura al començament de la configuració.

Pas 9: depuració: ús bàsic

Depuració: ús bàsic
Depuració: ús bàsic
Depuració: ús bàsic
Depuració: ús bàsic
Depuració: ús bàsic
Depuració: ús bàsic
Depuració: ús bàsic
Depuració: ús bàsic

Cobrim alguns dels conceptes bàsics del que podeu fer amb el depurador

Creació de punts d'interrupció:

Un punt d’interrupció és un punt del vostre codi on voleu que s’aturi el depurador. Per crear un punt d'interrupció, feu clic a l'esquerra del número de línia. Com a demostració, afegiu un punt d'interrupció a la primera línia del mètode de bucle.

Navegació del punt d’interrupció:

Per moure’s entre el punt d’interrupció o passar a la següent línia de codi, podeu utilitzar les eines que apareixeran a la part superior de la pantalla. Premeu el botó "continuar" (sembla un botó de reproducció) per moure el punt d'interrupció que acabem de crear dins del bucle.

Rellotges variables:

Els rellotges variables us permeten controlar el valor de les variables quan el depurador s’atura en un punt d’interrupció. Per afegir un nou rellotge de variables, podeu fer clic a la icona + i simplement escriure el nom de la variable. Com a demostració, escriviu la variable que hem afegit al pas anterior "delayTime"

Visor de variables:

També podeu veure totes les variables i els seus valors disponibles al punt de ruptura actual. Per fer una demostració, si mireu a la secció "Global" hauríeu de trobar la variable "delayTime".

Edició del valor de les variables:

També podeu editar els valors de les variables i tindrà efecte immediat en el comportament dels vostres codis. Per demostrar-ho, feu clic a la variable delayTime a la secció Visualitzador de variables i canvieu el valor a "100". Per mostrar aquest funcionament, desactiveu el punt d'interrupció dins del bucle fent clic de nou a l'esquerra del número de línia. Premeu el botó Continua de la barra de navegació del punt de trencament. El LED del vostre ESP32 ara hauria de parpellejar molt més ràpidament que abans.

Pas 10: resolució de problemes

Resolució de problemes
Resolució de problemes

Durant les proves, vaig comprovar que algunes vegades no podia carregar a l’ESP32 mentre estava connectat a l’ESP-prog, i no podia esbrinar un patró per què passava això, perquè la majoria de les vegades podia carregar sense qualsevol problema. Vaig trobar que podia desconnectar l’ESP32 i l’ESP-Prog, pujar el codi a l’ESP32 i després tornar-los a connectar i funcionaria bé.

Pas 11: Conclusió

Crec que aquesta és una eina molt interessant per afegir a la caixa d’eines per ajudar a esbrinar què passa al vostre projecte.

M'encantaria saber si us sembla útil això !. Feu-m’ho saber als comentaris que hi ha a continuació o acompanyeu-me a un munt d’autors al meu servidor Discord, on podem parlar d’aquest tema o de qualsevol altre relacionat amb els fabricants que tingueu. fora.

També m'agradaria donar un enorme agraïment als meus patrocinadors Github que m'ajuden a donar suport al que faig, realment ho agraeixo. Si no ho sabeu, Github coincideix amb patrocinis durant el primer any, de manera que si feu un patrocini coincidirà amb el 100% durant els propers mesos. Gràcies per llegir!

Recomanat: