Sisällysluettelo:

ESP32 - Halpa ratkaisu Circruutin virheenkorjaukseen: 5 vaihetta
ESP32 - Halpa ratkaisu Circruutin virheenkorjaukseen: 5 vaihetta

Video: ESP32 - Halpa ratkaisu Circruutin virheenkorjaukseen: 5 vaihetta

Video: ESP32 - Halpa ratkaisu Circruutin virheenkorjaukseen: 5 vaihetta
Video: Lesson 53: Using L298N Motor Driver for DC Motor Control | Arduino Step By Step Course 2024, Heinäkuu
Anonim
ESP32 - Halpa ratkaisu Circruutin virheenkorjaukseen
ESP32 - Halpa ratkaisu Circruutin virheenkorjaukseen

Hei, Tässä ohjeessa kuvataan, miten halpa JTAG -sovitin asennetaan FTDI 2232HL -piirin perusteella, jossa on visuaalinen koodi ja arduino -lisäosa.

- FTDI 2232HL -moduuli, jossa USB -liitin, alkaen $ 8 ebaysta, eikä maksullista ohjelmistoa tarvita. Tämä on loistava ratkaisu harrastajille, jotka eivät halua käyttää yli 50 dollaria ammattilaiselle JTAG -sovittimelle.

- Tätä sovitinta voidaan käyttää muiden alustojen, kuten ESP8266, ARM, AVR ja monien muiden, vianetsintään. Jotkin kokoonpanot riippuvat kohdealustasta, tämä ohje kattaa vain ESP32 -asennuksen.

- Jos sinulla on jo JTAG -sovitin, voit käyttää sitä silloin, kun openOCD tukee sitä. Käynnistä openocd eri määritystiedostolla jtag -sovittimen tyypin mukaan.

- platform.io voi helpottaa asennusta, mutta virheenkorjausta tuetaan vain maksullisessa ammattilaisversiossa.

- Toimii useimpien ESP32 -moduulien kanssa. (esimerkiksi halpa wemos lolin 32)

- Tämän jtag -sovittimen pitäisi toimia myös Linuxin kanssa, mutta en henkilökohtaisesti testannut sitä.

Vaihe 1: Ohjelmiston edellytykset

Arduino IDE -versio 1.8 tai uudempi. Windows -kaupan versiota ei tueta. Sinun on käytettävä klassista asennusversiota, joka voidaan ladata viralliselta Arduinon sivulta

Microsoftin visuaalisen studion koodi

Nämä visuaalisen studiokoodin lisäosat ovat pakollisia

  • Arduino
  • Alkuperäinen virheenkorjaus

Suosittelen myös tämän lisäosan asentamista, joka mahdollistaa intelisensen C/C ++: lle

C/C ++

Tässä oppaassa käytän kahta työkansiota:

D: / devel / ESP32 / tools / - tähän olen sijoittanut kaikki työkalut

C: / Users / xxxxx / Documents / Arduino / YourProject / - tämä on kansio, jossa on luonnos

voit sijoittaa tiedostosi muualle, jos haluat, mutta älä unohda päivittää kaikkia viittauksia todellisella polulla.

Vaihe 2: Ohjaimen asennus ja kokoonpano

Ajurin asennus ja kokoonpano
Ajurin asennus ja kokoonpano
Ajurin asennus ja kokoonpano
Ajurin asennus ja kokoonpano
Ajurin asennus ja kokoonpano
Ajurin asennus ja kokoonpano

Vaikka ikkunat havaitsisivat automaattisesti FT2232: n oletusarvoisesti, Windowsin oletusohjaimet eivät riitä kaikkiin lisätoimintoihin, ja ohjain on ladattava ja asennettava FTDI -sivustosta

Kun oikea ohjain on asennettu, sinun pitäisi nähdä FT2232 -moduulisi laitehallinnassa kahden sarjaportin lisäksi myös "USB -sarjamuuntimena A" ja "USB -sarjamuuntimena B"

Toinen vaihe on vaihtaa ohjaimen muuntimemme yhdelle kanavalle. Lataa zadig -työkalu osoitteesta https://zadig.akeo.ie/. Jos ymmärrän oikein, tämä työkalu linkittää winUSB -ohjaimen FTDI -laitteeseen, mikä mahdollistaa matalan tason kommunikoinnin openOCD: n ja USB -laitteen välillä.

Valitse zadig -työkalun valikossa "Asetukset" Näytä kaikki laitteet, niin sinun pitäisi nähdä sovitin käytettävissä olevien laitteiden luettelossa. Valitse "Dual RS232-HS (käyttöliittymä 0)" ja sitten korvaava ohjain "WinUSB v6.1.xxxx" ja napsauta lopuksi Vaihda ohjain -painiketta.

Kun liität sovittimen tietokoneen eri USB -porttiin, ohjaimen asetuksia on tarpeen muuttaa uudelleen zadig -työkalun avulla, muuten openOCD ei löydä sovitinta.

Vaihe 3: OpenOCD, Toolchain ja Gdb

OpenOCD, Toolchain ja Gdb
OpenOCD, Toolchain ja Gdb

1. Open OCD on työkalu kiertokulkujen virheenkorjauksessa, toisella puolella se puhuu sirulle toisella puolella se tarjoaa gdb -palvelimen, johon debugger (asiakas) voi muodostaa yhteyden. Lataa openOCD ESP32: lle osoitteesta https://github.com/espressif/openocd-esp32/releases ja pura se kansioon D: / devel / ESP32 / tools

2. muokkaa openOCD -määritystiedostoja:

esp-wroom-32.cfg

Koko polku tähän tiedostoon on:

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg

Tässä tiedostossa voit asettaa tiedonsiirtonopeuden muuttamalla parametria "adapter_khz". Esimerkiksi "adapter_khz 8000" tarkoittaa 8Mhz.

Oletus on 20 MHz ja se saattaa olla liian korkea, jos käytät pidempiä hyppyjohtoja tai leipälevyä. Suosittelen aloittamaan 1 MHz: n taajuudella ja jos kaikki on kunnossa, siirry suuremmalle nopeudelle, minulle 8 MHz toimii luotettavasti.

minimodule.cfg

Koko polku tähän tiedostoon on: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimalodule.cfg

Jos ymmärrän oikein, aito minimimoduuli on ylihinnoiteltu FT 2232: n FTDI: n valmistama jarrukortti, ja ainoa ero aidon minimimoduulin ja markkinoilla olevan halvan moduulin tai paljaan sirun välillä on oletus -USB -kuvaus. open OCD etsii jtag -sovitinta laitteen kuvauksen perusteella, myös asettelun initia on muutettava.

Halvalla moduulilla on kuvaus "Dual RS232-HS". Jos et ole varma laitteen kuvauksesta, voit tarkistaa sen laitteenhallinnasta -> laitteen ominaisuudet -> välilehden tiedot -> ominaisuuden "Väyläraportoitu laitteen kuvaus" arvon

Minimodule.cfg -sisällön pitäisi näyttää alla olevasta esimerkistä, rivit, jotka alkavat numerolla #, voidaan poistaa.

liitäntä ftdi #ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "Dual RS232 -HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000b ftdi_layout_data

esp32.cfg

Koko polku tähän tiedostoon on:

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg

Lisää seuraavat kaksi riviä esp32.cfg -tiedoston loppuun. Ilman tätä muutosta jarrupisteiden lisääminen ei toimi.

#Pakota hw -raja -arvot. Kun meillä on muistikartta, voimme myös sallia ohjelmiston bps.gdb_breakpoint_override kovaksi

3. Lataa ja asenna xtensa-esp32-elf-työkaluketju-tämä työkaluketju sisältää komentorivin virheenkorjauksen (gdb-asiakas), joka on välttämätön, jotta virheenkorjaus onnistuu mistä tahansa graafisesta IDE: stä. Paljaan työkaluketjun voi ladata espressif-sivustosta, vaihtoehtoisesta asennuksesta

Vaihe 4: Johdotus ja ensimmäinen testi

Johdotus ja ensimmäinen testi
Johdotus ja ensimmäinen testi
Johdotus ja ensimmäinen testi
Johdotus ja ensimmäinen testi

Liitä FT2322 -moduuli ESP: hen. Suosittelen käyttämään mahdollisimman lyhyitä johtoja. Jos olet uusi JTAG: ssä, älä unohda, että sovittimen TDI menee sirun TDI: hen, myös sovittimen TDO siirtyy sirun TDO: hon. JTAG -datalinjoja EI RISTITTY kuten Rx/Tx uartissa!

Seuraavaa testiä varten suosittelen lataamaan vilkkuvan esimerkkiluonnoksen tai jonkin muun luonnoksen, joka voi ilmoittaa, milloin suoritin on käynnissä vai ei, vilkkuvalla LED -valolla tai piippaamalla tai kirjoittamalla sarjakonsoliin.

Käynnistä openOCD seuraavalla komennolla

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimalodule.cfg -f board /esp-wroom-32.cfg

Tämä käynnistää openOCD: n ja jos kaikki on kunnossa, sinun pitäisi nähdä komentorivin tulostuksessa seuraavat rivit:

Tiedot: kellotaajuus 8000 kHz Info: JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info: JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), osa: 0x2003, ver: 0x1)

Myös openocd -prosessi kuuntelee TCP -porttia 3333

Avaa uusi pääte ja käynnistä komentorivin gdb -asiakas komennon avulla

D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe

Odota hetki ja kun gdb -pääte on valmis, kirjoita seuraavat komennot yksi kerrallaan

kohde -kaukosäädin: 3333monin nollaus pysäytys jatka

ensimmäinen komento avaa yhteyden openocd -virheenkorjauspalvelimeen, toinen lopettaa ohjelman suorittamisen ESP: ssä ja LED -valon pitäisi lakata vilkkumasta, jatkaa ohjelman palauttamista ja LED -merkkivalon pitäisi alkaa vilkkua uudelleen.

Vaihe 5: Lisää virheenkorjausmääritykset Visual Studio Code -ohjelmaan

Lisää virheenkorjausmääritykset Visual Studio -koodiin
Lisää virheenkorjausmääritykset Visual Studio -koodiin

Oletan, että olet jo määrittänyt visual studio -koodin ja arduino -lisäosan oikein, ja voit vahvistaa ja ladata luonnoksesi taululle. Jos ei, tarkista ohjeet visuaalisen studiokoodin ja arduinon määrittämiseen, esimerkiksi tältä sivulta

Jotta virheenkorjaus toimisi, sen on määritettävä rakennuksen tulostuskansio. Luonnoskansion alla on (piilotettu) kansio.vscode, jossa on tiedosto arduino.json. lisää tähän tiedostoon seuraava rivi:

"output": "BuildOutput/"

suorita Tarkista tai lataa ja tarkista luonnoskansio uudelleen, siellä pitäisi olla uusi BuildOutput -kansio ja sen sisällä oleva tiedosto.elf -laajennuksella. elf -tiedosto on elintärkeä virheenkorjauksessa.

Debugger -asetukset ovat tiedostossa launch.json. Luo tämä tiedosto seuraavalla sisällöllä tai voit kopioida tämän tiedoston liitteenä olevasta esimerkkiprojektista. Älä unohda säätää riviä 26 ja määritä oikea polku projektisi.elf -tiedostoon.

{// Käytä IntelliSenseä oppiaksesi mahdollisista määritteistä. // Vie hiiri nähdäksesi nykyisten määritteiden kuvaukset. // Lisätietoja on osoitteessa: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "kokoonpanot": [{"name": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" launch "," program ":" $ {file} "," cwd ":" $ {workspaceRoot}/BuildOutput/"," MIMode ":" gdb ", "targetArchitecture": "arm", "miDebuggerPath": "D: /devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe", "debugServerArgs": "", " customLaunchSetupCommands ": [{" text ":" target remote: 3333 "}, {" text ":" mon reset halt "}, {// dynaaminen variantti" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// staattinen variantti //" text ":" file c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Info \: [w / d \.]*: / laitteisto "," launchCompleteCommand ":" exec-jatka "," filterStderr ": true," args ": }]}

Kuinka aloittaa virheenkorjaus:

  1. Noudata ja lataa luonnoksesi taululle
  2. Käynnistä openOCD parametreilla
  3. Aseta jarrutuspisteet haluamaasi koodiin
  4. Kun olet määrittänyt kaikki jarrutuspisteet, varmista, että olet avannut projektin pää.ino -tiedoston. (tai kovakoodipolku.elf -tiedostoon launch.json -tiedostossa)
  5. Avaa virheenkorjauspaneeli vs -koodissa (Ctrl + Vaihto + D)
  6. Valitse "Arduino-GDB-openOCD" debugger, pitäisi olla käytettävissä vain.
  7. Aloita virheenkorjaus painamalla F5

Suositeltava: