Indholdsfortegnelse:

ESP32 - Billig løsning til i Circruit Debug: 5 trin
ESP32 - Billig løsning til i Circruit Debug: 5 trin

Video: ESP32 - Billig løsning til i Circruit Debug: 5 trin

Video: ESP32 - Billig løsning til i Circruit Debug: 5 trin
Video: #139 Is there a simple and cheap way to protect your super caps? How? 2024, Juli
Anonim
ESP32 - Billig løsning til i Circruit Debug
ESP32 - Billig løsning til i Circruit Debug

Hej, I denne instruktive beskrives, hvordan du opretter en billig JTAG -adapter baseret på FTDI 2232HL -chip med visuel kode og arduino -addon.

- FTDI 2232HL -modul med USB -stik fra 8 $ på ebay og ingen betalt software er påkrævet. Dette er en god løsning for hobbyfolk, der ikke ønsker at bruge 50 $+ på en professionel JTAG -adapter.

- Denne adapter kan bruges til fejlfinding af andre platforme som ESP8266, ARM, AVR og mange andre. Nogle konfigurationer afhænger af målplatformen, denne instruktion dækker kun opsætning til ESP32.

- Hvis du allerede ejer en eller anden JTAG -adapter, kan du bruge den, når den understøttes af openOCD, bare start openocd med en anden konfigurationsfil baseret på typen af din jtag -adapter.

- platform.io kan gøre opsætningen lettere for dig, men fejlsøgning understøttes kun i betalt professionel version.

- Fungerer med de fleste ESP32 -moduler. (for eksempel billige wemos lolin 32)

- denne jtag -adapter skulle også fungere med linux, men jeg testede det personligt ikke.

Trin 1: Software Perquisites

Arduino IDE version 1.8 eller nyere. Windows store -version understøttes ikke. Du skal bruge den klassiske installationsversion, som kan downloades fra den officielle Arduino -side

Microsoft visual studio -kode

Disse tilføjelser til visuel studiekode er obligatoriske

  • Arduino
  • Oprindelig fejlfinding

Jeg anbefaler også at installere denne tilføjelse, som muliggør intelisense til C/C ++

C/C ++

I denne manual vil jeg bruge 2 arbejdsmapper:

D: / devel / ESP32 / tools / - her har jeg placeret alle værktøjer

C: / Users / xxxxx / Documents / Arduino / YourProject / - dette er mappe med skitse

du kan placere dine filer andre steder, hvis du vil, bare glem ikke at opdatere alle referencer med din faktiske sti.

Trin 2: Driverinstallation og konfiguration

Driverinstallation og konfiguration
Driverinstallation og konfiguration
Driverinstallation og konfiguration
Driverinstallation og konfiguration
Driverinstallation og konfiguration
Driverinstallation og konfiguration

Selvom Windows automatisk registrerer FT2232 som standard, er Windows standarddrivere ikke nok til alle forhåndsfunktioner, og det er nødvendigt at downloade og installere driver fra FTDI -webstedet

Når den korrekte driver er installeret, skal du se dit FT2232 -modul i enhedshåndteringen ikke kun som 2 serielle porte, men også som "USB seriel konverter A" og "USB seriel konverter B"

Andet trin er ændringsdriver til en kanal i vores konverter. Download zadig -værktøj fra https://zadig.akeo.ie/. Hvis jeg forstår korrekt, kobler dette værktøj winUSB -driver til FTDI -enhed, som muliggør kommunikation på lavt niveau mellem openOCD og USB -enhed.

I zadig -værktøj skal du i menuen "Indstillinger" markere "Vis alle enheder", så skal du se din adapter på listen over tilgængelige enheder. Vælg "Dual RS232-HS (grænseflade 0)", vælg derefter erstatningsdriver "WinUSB v6.1.xxxx", og klik endelig på knappen Udskift driver.

Når du slutter din adapter til en anden USB -port på din computer, er det nødvendigt at ændre driverindstillinger via zadig -værktøj igen, ellers vil openOCD ikke finde din adapter.

Trin 3: OpenOCD, Toolchain og Gdb

OpenOCD, Toolchain og Gdb
OpenOCD, Toolchain og Gdb

1. Åben OCD er værktøj til i debugging i kredsløb, på den ene side taler det med chip på den anden side det giver gdb -server, hvor debugger (klient) kan oprette forbindelse. Download openOCD til ESP32 fra https://github.com/espressif/openocd-esp32/releases, og pak den ud til mappe D: / devel / ESP32 / tools

2. rediger openOCD -konfigurationsfiler:

esp-wroom-32.cfg

Fuld sti til denne fil er:

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

I denne fil kan du indstille kommunikationshastighed ved at ændre parameteren "adapter_khz". For eksempel betyder "adapter_khz 8000" 8Mhz.

Standard er 20MHz, og det kan være for højt, hvis du bruger længere jumperwires eller breadboard. Jeg anbefaler at starte med 1Mhz, og hvis alt er OK, skal du gå til højere hastighed, for mig fungerer 8Mhz pålideligt.

minimodule.cfg

Den fulde sti til denne fil er: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Hvis jeg forstår rigtigt, er ægte minimodule for dyrt bremsebræt med FT 2232 fremstillet af FTDI, og kun forskellen mellem ægte minimodule og billigt modul eller bare chip, der er tilgængelig på markedet, er standard USB -beskrivelse. åben OCD leder efter jtag adapter baseret på enhedsbeskrivelse, også layout init skal justeres.

Billigt modul har beskrivelse "Dual RS232-HS". Hvis du ikke er sikker på beskrivelsen af din enhed, kan du tjekke den i enhedshåndtering -> enhedsegenskaber -> fanedetaljer -> værdi af ejendommen "Bus rapporteret enhedsbeskrivelse"

Indholdet af minimodule.cfg skal ligne eksemplet herunder, linjer begynder med # kan slettes.

interface 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

Fuld sti til denne fil er:

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

Tilføj følgende 2 linjer til slutningen af esp32.cfg. Uden denne ændring fungerer tilføjelse af bremsepunkter ikke.

#Force hw breakpoints. Når vi har et hukommelseskort, kan vi også tillade software bps.gdb_breakpoint_override hårdt

3. Download og installer xtensa-esp32-elf værktøjskæde-denne værktøjskæde indeholder kommandolinjefejlfinding (gdb-klient), som er afgørende for at få funktionsfejl fra enhver grafisk IDE. Bare værktøjskæde kan downloades fra espressif-webstedet, afsnittet "Alternativ opsætning"

Trin 4: Ledningsføring og første test

Kabelføring og første test
Kabelføring og første test
Kabelføring og første test
Kabelføring og første test

Tilslut FT2322 modul med ESP. Jeg anbefaler at bruge så korte ledninger som muligt. Hvis du er ny på JTAG, skal du ikke glemme, at adapterens TDI går til TDI for chip, også TDO for adapter vil gå til TDO af chip. JTAG -datalinjer krydses IKKE som Rx/Tx på uart!

Til følgende test anbefaler jeg upload blinkeksempelskitse eller en anden skitse, der kan indikere, hvornår CPU kører eller ej, ved at blinke LED eller bippe eller skrive til seriel konsol.

Start openOCD ved at følge kommandoen

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

Dette starter openOCD, og hvis alt er i orden, skal du se i kommandolinjens output indeholder følgende linjer:

Info: clockhastighed 8000 kHz Information: JTAG tap: esp32.cpu0 hane/enhed fundet: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1) Info: JTAG tap: esp32.cpu1 hane/enhed fundet: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1)

Openocd -processen lytter også til TCP -port 3333

Åbn ny terminal, og start kommandolinjens gdb -klient ved at følge kommandoen

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

Vent et sekund, og når gdb -terminalen er klar, skal du skrive følgende kommandoer en efter en

målfjernbetjening: 3333mån. nulstilling standse

første kommando åbner forbindelse til openocd debug server, anden stopper programkørsel på ESP og LED skal stoppe med at blinke, fortsætte gendannelse af programudførelse og LED s skal begynde at blinke igen.

Trin 5: Føj fejlretningskonfiguration til Visual Studio Code

Tilføj fejlretningskonfiguration til Visual Studio Code
Tilføj fejlretningskonfiguration til Visual Studio Code

Jeg antager på det tidspunkt, at du allerede har konfigureret visuel studiekode og arduino addon korrekt, og du kan verificere og uploade din skitse til tavlen. Hvis ikke, kan du tjekke nogle instruktioner om, hvordan du konfigurerer visuel studiekode og arduino, f.eks. På denne side

For at få fejlfinding til at fungere er det nødvendigt at specificere build -outputmappe. Under din skitsemappe er der (skjult) mappe.vscode, hvor er filen arduino.json. tilføj til denne fil følgende linje:

"output": "BuildOutput/"

kør verificer eller upload, og tjek din sketch -mappe igen, der skulle være en ny BuildOutput -mappe og inde i den med.elf extensition. elf -fil er afgørende for fejlfinding.

Debugger -indstillinger er i filstart.json. Opret denne fil med følgende indhold, eller du kan kopiere denne fil fra vedhæftede eksempelprojekt. Glem ikke juster linje 26 og definer den korrekte sti til dit projekt.elf -fil.

{// Brug IntelliSense til at lære om mulige attributter. // Hold markøren for at se beskrivelser af eksisterende attributter. // Du kan få flere oplysninger på: 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 stop "}, {// 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ådan starter du fejlfinding:

  1. Overhold og upload din skitse til bord
  2. Start openOCD med parametre
  3. Indstil bremsepunkter i koden, hvor du vil
  4. Når du har indstillet alle bremsepunkter, skal du sørge for, at du har åbnet din projekt hoved.ino -fil. (eller hardcode -sti til.elf -fil i launch.json)
  5. Åbn fejlfindingspanel i vs kode (Ctrl + Shift + D)
  6. Vælg "Arduino-GDB-openOCD" debugger, bør kun være tilgængelig.
  7. Tryk på F5 for at starte fejlfinding

Anbefalede: