Innehållsförteckning:
- Steg 1: Programvaruförutsättningar
- Steg 2: Installera och konfigurera drivrutiner
- Steg 3: OpenOCD, Toolchain och Gdb
- Steg 4: Kabeldragning och första test
- Steg 5: Lägg till felsökningskonfiguration till Visual Studio Code
Video: ESP32 - billig lösning för in Circruit Debug: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Hej, I denna instruerbara beskrivs hur man ställer in billig JTAG -adapter baserad på FTDI 2232HL -chip, med visuell kod och arduino -tillägg.
- FTDI 2232HL -modul med USB -kontakt från 8 $ på ebay och ingen betald programvara krävs. Detta är en bra lösning för hobbyister som inte vill spendera 50 $+ på professionell JTAG -adapter.
- Denna adapter kan användas för felsökning av andra plattformar som ESP8266, ARM, AVR och många andra. Vissa konfigurationer beror på målplattformen, denna instruktion täcker endast installation för ESP32.
- Om du redan äger en JTAG -adapter kan du använda den när den stöds av openOCD, bara starta openocd med en annan konfigurationsfil baserat på typen av din jtag -adapter.
- platform.io kan göra installationen enklare för dig, men felsökning stöds endast i betald professionell version.
- Fungerar med de flesta ESP32 -moduler. (till exempel billiga wemos lolin 32)
- den här jtag -adaptern borde också fungera med linux, men jag testade den personligen inte.
Steg 1: Programvaruförutsättningar
Arduino IDE version 1.8 eller nyare. Windows store -version stöds inte. Du måste använda den klassiska installationsversionen som kan laddas ner från den officiella Arduino -sidan
Microsoft visual studio -kod
Dessa tillägg för visuell studiokod är obligatoriska
- Arduino
- Inbyggd felsökning
Jag rekommenderar också att installera detta tillägg som möjliggör intelisense för C/C ++
C/C ++
I den här handboken kommer jag att använda 2 arbetsmappar:
D: / devel / ESP32 / tools / - här har jag placerat alla verktyg
C: / Users / xxxxx / Documents / Arduino / YourProject / - det här är en mapp med skiss
du kan placera dina filer någon annanstans om du vill, glöm inte att uppdatera alla referenser med din faktiska sökväg.
Steg 2: Installera och konfigurera drivrutiner
Även om Windows automatiskt upptäcker FT2232 som standard räcker inte Windows standarddrivrutiner för alla avancerade funktioner och det är nödvändigt att ladda ner och installera drivrutinen från FTDI -webbplatsen
När rätt drivrutin är installerad bör du se din FT2232 -modul i enhetshanteraren inte bara som 2 seriella portar utan också som "USB -seriekonverterare A" och "USB -seriekonverterare B"
Andra steget är att byta drivrutin för en kanal i vår omvandlare. Ladda ner zadig -verktyget från https://zadig.akeo.ie/. Om jag förstår korrekt länkar detta verktyg winUSB -drivrutin till FTDI -enhet som möjliggör kommunikation på låg nivå mellan openOCD och USB -enhet.
I zadig -verktyget, i menyn "Alternativ" markerar du "Visa alla enheter", då bör du se din adapter i listan över tillgängliga enheter. Välj "Dubbel RS232-HS (gränssnitt 0)" och välj sedan ersättningsdrivrutinen "WinUSB v6.1.xxxx" och klicka sedan på knappen för att byta drivrutin.
När du ansluter din adapter till en annan USB -port på din dator är det nödvändigt att ändra drivrutinsinställningarna via zadig -verktyget igen, annars kommer openOCD inte att hitta din adapter.
Steg 3: OpenOCD, Toolchain och Gdb
1. Öppen OCD är ett verktyg för incruiting -felsökning, på ena sidan pratar det med chip på den andra sidan det ger gdb -server där debugger (klient) kan ansluta. Ladda ner openOCD för ESP32 från https://github.com/espressif/openocd-esp32/releases och packa upp den till mapp D: / devel / ESP32 / tools
2. redigera openOCD -konfigurationsfiler:
esp-wroom-32.cfg
Den fullständiga sökvägen till den här filen är:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg
I den här filen kan du ställa in kommunikationshastighet genom att ändra parameter "adapter_khz". Till exempel betyder "adapter_khz 8000" 8Mhz.
Standardvärdet är 20 MHz och det kan vara för högt om du använder längre bygel eller trådbräda. Jag rekommenderar att börja på 1Mhz och om allt är OK, gå till högre hastighet, för mig fungerar 8Mhz pålitligt.
minimodule.cfg
Den fullständiga sökvägen till den här filen är: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
Om jag förstår rätt är äkta minimodule överprisat bromsbräda med FT 2232 tillverkad av FTDI och enda skillnaden mellan äkta minimodul och billig modul eller bara chip som finns på marknaden är standard USB -beskrivning. öppen OCD letar efter jtag -adapter baserat på enhetsbeskrivning, även layout init måste justeras.
Billig modul har beskrivning "Dual RS232-HS". Om du inte är säker på beskrivningen av din enhet kan du kontrollera den i enhetshanteraren -> enhetsegenskaper -> flikdetaljer -> värdet på egenskapen "Bussrapporterad enhetsbeskrivning"
Innehållet i minimodule.cfg ska se ut som exemplet nedan, rader som börjar med # kan tas bort.
gränssnitt 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 ftdat_lay
esp32.cfg
Den fullständiga sökvägen till den här filen är:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg
Lägg till följande 2 rader till slutet av esp32.cfg. Utan denna ändring fungerar det inte att lägga till bromspunkter.
#Force hw brytpunkter. När vi väl har en minneskarta kan vi också tillåta programvara bps.gdb_breakpoint_override hårt
3. Ladda ner och installera xtensa-esp32-elf verktygskedja-denna verktygskedja innehåller kommandoradsfelsökning (gdb-klient) som är avgörande för att ha fungerande felsökning från alla grafiska IDE. Bare toolchain kan laddas ner från espressif-webbplatsen, avsnittet "Alternativ installation"
Steg 4: Kabeldragning och första test
Anslut FT2322 -modulen med ESP. Jag rekommenderar att använda så korta ledningar som möjligt. Om du är ny på JTAG, glöm inte att adapterens TDI går till TDI för chip, även TDO för adapter går till TDO av chip. JTAG -datarader korsas INTE som Rx/Tx på uart!
För följande test rekommenderar jag att du laddar upp skiss för exempelvis uppladdning av blinkning eller någon annan skiss som kan indikera när CPU körs eller inte genom att blinka LED eller pipa eller skriva till seriekonsolen.
Starta openOCD genom att följa kommandot
D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimodule.cfg -f board /esp-wroom-32.cfg
Detta kommer att starta openOCD och om allt är okej bör du se på kommandoradsutmatningen följande rader:
Info: klockhastighet 8000 kHz Information: JTAG -kran: esp32.cpu0 kran/enhet hittad: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1) Info: JTAG -kran: esp32.cpu1 kran/enhet hittad: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1)
Openocd -processen lyssnar också på TCP -port 3333
Öppna ny terminal och starta kommandorads gdb -klient genom att följa kommandot
D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe
Vänta en sekund och när gdb -terminalen är klar skriver du följande kommandon en efter en
målfjärrkontroll: 3333mån återställning stoppa fortsätt
första kommandot öppnar anslutningen till openocd debug server, andra stoppar programkörningen på ESP och lysdioden ska sluta blinka, fortsätt återställa programkörningen och lysdioden ska börja blinka igen.
Steg 5: Lägg till felsökningskonfiguration till Visual Studio Code
Jag antar att du redan har konfigurerat visuell studiokod och arduino addon korrekt och du kan verifiera och ladda upp din skiss till tavlan. Om inte, vänligen kolla några instruktioner om hur du konfigurerar visuell studiokod och arduino, till exempel på denna sida
För att få felsökning att fungera är det nödvändigt att ange build -utdatamapp. Under din skissmapp finns (dold) mapp.vscode, där är filen arduino.json. lägg till i filen följande rad:
"output": "BuildOutput/"
kör verifiera eller ladda upp och kolla din skissmapp igen, det borde finnas en ny BuildOutput -mapp och inuti den med.elf extensition. elf -filen är avgörande för felsökning.
Felsökningsinställningar finns i filstart.json. Skapa den här filen med följande innehåll, eller så kan du kopiera den här filen från bifogade exempelprojekt. Glöm inte justera rad 26 och definiera rätt sökväg till ditt projekt.elf -fil.
{// Använd IntelliSense för att lära dig om möjliga attribut. // Håll muspekaren för att visa beskrivningar av befintliga attribut. // För mer information, besök: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "konfigurations": [{"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 "}, {// dynamic variant" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statisk variant //" text ":" fil 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 \.]*: / hardware "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}
Så här börjar du felsöka:
- Komplettera och ladda upp din skiss till brädet
- Starta openOCD med parametrar
- Ställ in bromspunkter i koden där du vill
- När du har ställt in alla bromspunkter, se till att du har öppnat din projekt huvud.ino -fil. (eller hårddiskväg till.elf -fil i launch.json)
- Öppna felsökningspanelen i kontra kod (Ctrl + Skift + D)
- Välj "Arduino-GDB-openOCD" -felsökare, ska endast vara tillgänglig.
- Tryck på F5 för att starta felsökningen
Rekommenderad:
IOT -lösning för delcykeln: 6 steg
IOT -lösning för delcykeln: Delcykeln är mycket populär i Kina nuförtiden. Det finns mer än 10 märken för delningscykel på marknaden, och “ mobike ” är den mest kända, den har mer än 100 miljoner registrerade användare och har spridit sig till andra städer
En komplett Arduino roterande lösning: 5 steg
En komplett Arduino Rotary Solution: Rotary encoders är vridbara kontrollknappar för elektroniska projekt, som ofta används med Arduino -familjens mikrokontroller. De kan användas för att finjustera parametrar, navigera i menyer, flytta objekt på skärmen, ange värden av något slag. De är vanliga ersättare
Använda fingeravtryckssensor för tidsmängd i kombination med XAMP -lösning: 6 steg (med bilder)
Använda fingeravtryckssensor för tid närvaro i kombination med XAMP -lösning: För ett skolprojekt letade vi efter en lösning på hur vi kan spåra elevernas närvaro. Många av våra elever kommer sent. Det är ett tråkigt jobb att kontrollera deras närvaro. Å andra sidan är det mycket diskussion eftersom studenter ofta kommer att säga
Lösning för inga parkeringszoner: 5 steg
Lösning för inga parkeringszoner: Detta projekt är ett resultat av den inspiration som mitt team fick från en tidningsartikel. Artikeln talade om människor som parkerar sina fordon i inga parkeringszoner. Detta har blivit en stor fråga som resulterar i trafikstockningar och olägenhet för andra
Microdrive Madness: $ 15 Lösning för dina extra mikroenheter: 3 steg
Microdrive Madness: $ 15 Lösning för dina extra mikrodrives: För er som kom från min andra instruerbara iPod -uppgradering, välkommen! Har du ingen aning om vad du ska göra med dina extra mikrodrivrutiner, hämtade från gamla mp3 -spelare, iPod, kameror, etc. … Tja, jag har den mest storslagna lösningen för dig