Sisällysluettelo:
- Vaihe 1: Ohjelmiston edellytykset
- Vaihe 2: Ohjaimen asennus ja kokoonpano
- Vaihe 3: OpenOCD, Toolchain ja Gdb
- Vaihe 4: Johdotus ja ensimmäinen testi
- Vaihe 5: Lisää virheenkorjausmääritykset Visual Studio Code -ohjelmaan
Video: ESP32 - Halpa ratkaisu Circruutin virheenkorjaukseen: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
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
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
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
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:
- Noudata ja lataa luonnoksesi taululle
- Käynnistä openOCD parametreilla
- Aseta jarrutuspisteet haluamaasi koodiin
- Kun olet määrittänyt kaikki jarrutuspisteet, varmista, että olet avannut projektin pää.ino -tiedoston. (tai kovakoodipolku.elf -tiedostoon launch.json -tiedostossa)
- Avaa virheenkorjauspaneeli vs -koodissa (Ctrl + Vaihto + D)
- Valitse "Arduino-GDB-openOCD" debugger, pitäisi olla käytettävissä vain.
- Aloita virheenkorjaus painamalla F5
Suositeltava:
Reaaliaikainen Rubikin kuution silmät ratkaistu Ratkaisu Raspberry Pi: n ja OpenCV: n avulla: 4 vaihetta
Reaaliaikainen Rubikin kuution sokeat ratkaisija Raspberry Pi: n ja OpenCV: n avulla: Tämä on Rubikin kuutiotyökalun toinen versio, joka on suunniteltu ratkaisemaan silmät. Ensimmäinen versio on JavaScriptin kehittämä, näet projektin RubiksCubeBlindfolded1Toisin kuin edellinen, tämä versio käyttää OpenCV -kirjastoa värien ja e
IOT -ratkaisu jakopyörälle: 6 vaihetta
IOT -ratkaisu jakopyörälle: Jakopyörä on erittäin suosittu Kiinassa näinä päivinä. Markkinoilla on yli 10 merkkistä jakopyörää, ja “ mobike ” on tunnetuin, sillä on yli 100 miljoonaa rekisteröitynyttä käyttäjää ja se on levinnyt muihin kaupunkeihin
Täydellinen Arduino -pyörivä ratkaisu: 5 vaihetta
Täydellinen Arduino Rotary -ratkaisu: Rotary -anturit ovat käännettäviä säätönuppeja elektronisiin projekteihin, joita käytetään usein Arduino -perheen mikro -ohjaimien kanssa. Niiden avulla voidaan hienosäätää parametreja, navigoida valikoissa, siirtää kohteita näytöllä, asettaa kaikenlaisia arvoja. He ovat tavallisia korvaavia
Nähtiin LoRa IoTea -ratkaisu: 5 vaihetta
Nähtiin LoRa IoTea -ratkaisu: Automaattinen tiedonkeruujärjestelmä, jota sovelletaan teen istutukseen. Se on osa älykästä maataloustiedon keräämistä
Nähtiin IoTea LoRa -ratkaisu (päivitys 1811): 5 vaihetta
Nähtiin IoTea LoRa -ratkaisu (päivitys 1811): Internet+ on suosittu käsite nyt. Tällä kertaa kokeilimme Internetiä ja maataloutta teepuutarhan kasvattamiseksi kasvaa Internet -teetä