Indholdsfortegnelse:
- Trin 1: Software Perquisites
- Trin 2: Driverinstallation og konfiguration
- Trin 3: OpenOCD, Toolchain og Gdb
- Trin 4: Ledningsføring og første test
- Trin 5: Føj fejlretningskonfiguration til Visual Studio Code
![ESP32 - Billig løsning til i Circruit Debug: 5 trin ESP32 - Billig løsning til i Circruit Debug: 5 trin](https://i.howwhatproduce.com/images/001/image-866-49-j.webp)
Video: 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](https://i.ytimg.com/vi/NsTAyD2i3rc/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
![ESP32 - Billig løsning til i Circruit Debug ESP32 - Billig løsning til i Circruit Debug](https://i.howwhatproduce.com/images/001/image-866-50-j.webp)
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](https://i.howwhatproduce.com/images/001/image-866-51-j.webp)
![Driverinstallation og konfiguration Driverinstallation og konfiguration](https://i.howwhatproduce.com/images/001/image-866-52-j.webp)
![Driverinstallation og konfiguration Driverinstallation og konfiguration](https://i.howwhatproduce.com/images/001/image-866-53-j.webp)
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](https://i.howwhatproduce.com/images/001/image-866-54-j.webp)
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](https://i.howwhatproduce.com/images/001/image-866-55-j.webp)
![Kabelføring og første test Kabelføring og første test](https://i.howwhatproduce.com/images/001/image-866-56-j.webp)
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](https://i.howwhatproduce.com/images/001/image-866-57-j.webp)
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:
- Overhold og upload din skitse til bord
- Start openOCD med parametre
- Indstil bremsepunkter i koden, hvor du vil
- 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)
- Åbn fejlfindingspanel i vs kode (Ctrl + Shift + D)
- Vælg "Arduino-GDB-openOCD" debugger, bør kun være tilgængelig.
- Tryk på F5 for at starte fejlfinding
Anbefalede:
Løsning af sandhedstabeller: 10 trin
![Løsning af sandhedstabeller: 10 trin Løsning af sandhedstabeller: 10 trin](https://i.howwhatproduce.com/images/005/image-13234-j.webp)
Løsning af sandhedstabeller: En sandhedstabel er en måde at visualisere alle resultaterne af et problem. Dette instruktionssæt er lavet til folk, der kommer i gang med diskret matematik. Vi vil praktisere i dag med et eksempelproblem, der er specifikt for disse instruktioner. Du wi
Løsning af klikstøjsproblem på Apple 27 "skærm: 4 trin
![Løsning af klikstøjsproblem på Apple 27 "skærm: 4 trin Løsning af klikstøjsproblem på Apple 27 "skærm: 4 trin](https://i.howwhatproduce.com/images/011/image-30878-j.webp)
Løsning af problem med klikstøj på Apple 27 "skærm: Har en af dine elskede skærme nogensinde begyndt at lave meget støj, når du bruger den? Dette ser ud til at ske, efter at skærmen har været i brug i flere år. Jeg debugger en af de display tænker der var en fejl fanget i køleventilatoren, b
IOT -løsning til delecyklen: 6 trin
![IOT -løsning til delecyklen: 6 trin IOT -løsning til delecyklen: 6 trin](https://i.howwhatproduce.com/images/004/image-9810-6-j.webp)
IOT -løsning til delecyklen: Delecyklen er meget populær i Kina i disse dage. Der er mere end 10 mærker til deling af cykler på markedet, og “ mobike ” er den mest berømte, den har mere end 100 millioner registrerede brugere og har spredt sig til andre byer end
Brug af fingeraftrykssensor til tidsmøde i kombination med XAMP -løsning: 6 trin (med billeder)
![Brug af fingeraftrykssensor til tidsmøde i kombination med XAMP -løsning: 6 trin (med billeder) Brug af fingeraftrykssensor til tidsmøde i kombination med XAMP -løsning: 6 trin (med billeder)](https://i.howwhatproduce.com/images/005/image-13150-7-j.webp)
Brug af fingeraftrykssensor til tidsmøde i kombination med XAMP -løsning: Til et skoleprojekt ledte vi efter en løsning på, hvordan vi kan spore elevernes fremmøde. Mange af vores elever kommer sent ind. Det er et kedeligt job at kontrollere deres tilstedeværelse. På den anden side er der megen diskussion, fordi eleverne ofte vil sige
Microdrive Madness: $ 15 Løsning til dine ekstra mikrodrive: 3 trin
![Microdrive Madness: $ 15 Løsning til dine ekstra mikrodrive: 3 trin Microdrive Madness: $ 15 Løsning til dine ekstra mikrodrive: 3 trin](https://i.howwhatproduce.com/images/003/image-8618-50-j.webp)
Microdrive Madness: $ 15 Løsning til dine ekstra mikrodrive: Til jer, der kom fra min anden instruerbare iPod -opgradering, velkommen! Har du ingen idé om, hvad du skal gøre med dine ekstra mikrodrev, taget fra gamle mp3 -afspillere, iPods, kameraer osv …? Nå, jeg har den mest storslåede løsning til dig