Innehållsförteckning:

ESP32 - billig lösning för in Circruit Debug: 5 steg
ESP32 - billig lösning för in Circruit Debug: 5 steg

Video: ESP32 - billig lösning för in Circruit Debug: 5 steg

Video: ESP32 - billig lösning för in Circruit Debug: 5 steg
Video: #139 Is there a simple and cheap way to protect your super caps? How? 2024, Juli
Anonim
ESP32 - Billig lösning för i Circruit Debug
ESP32 - Billig lösning för i Circruit Debug

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

Drivrutinsinstallation och konfiguration
Drivrutinsinstallation och konfiguration
Drivrutinsinstallation och konfiguration
Drivrutinsinstallation och konfiguration
Drivrutinsinstallation och konfiguration
Drivrutinsinstallation och konfiguration

Ä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

OpenOCD, Toolchain och Gdb
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

Kabeldragning och första test
Kabeldragning och första test
Kabeldragning och första test
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

Lägg till felsökningskonfiguration till Visual Studio Code
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:

  1. Komplettera och ladda upp din skiss till brädet
  2. Starta openOCD med parametrar
  3. Ställ in bromspunkter i koden där du vill
  4. 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)
  5. Öppna felsökningspanelen i kontra kod (Ctrl + Skift + D)
  6. Välj "Arduino-GDB-openOCD" -felsökare, ska endast vara tillgänglig.
  7. Tryck på F5 för att starta felsökningen

Rekommenderad: