Sadržaj:
- Korak 1: Softverske odredbe
- Korak 2: Instaliranje i konfiguracija upravljačkog programa
- Korak 3: OpenOCD, Toolchain i Gdb
- Korak 4: Ožičenje i prvi test
- Korak 5: Dodajte konfiguraciju otklanjanja grešaka u kod Visual Studio
Video: ESP32 - Jeftino rješenje za otklanjanje grešaka u Circruit: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Poštovani, U ovom uputstvu je opisano kako postaviti jeftin JTAG adapter zasnovan na FTDI 2232HL čipu, sa vizuelnim kodom i arduino dodatkom.
- FTDI 2232HL modul sa USB konektorom već od 8 USD na ebayu i nije potreban softver koji se plaća. Ovo je odlično rješenje za hobiste koji ne žele potrošiti 50 USD+ na profesionalni JTAG adapter.
- Ovaj adapter se može koristiti za otklanjanje grešaka na drugim platformama poput ESP8266, ARM, AVR i mnogih drugih. Neka konfiguracija ovisi o ciljnoj platformi, ovo uputstvo pokriva samo postavke za ESP32.
- Ako već posjedujete neki JTAG adapter, možete ga koristiti kada ga podržava openOCD, samo pokrenite openocd s drugom konfiguracijskom datotekom ovisno o vrsti vašeg jtag adaptera.
- platform.io vam može olakšati postavljanje, ali ispravljanje grešaka podržano je samo u plaćenoj profesionalnoj verziji.
- Radi s većinom ESP32 modula. (na primjer jeftini wemos lolin 32)
- ovaj jtag adapter bi trebao raditi i sa linuxom, ali ga osobno nisam testirao.
Korak 1: Softverske odredbe
Arduino IDE verzija 1.8 ili novija. Verzija Windows trgovine nije podržana. Morate koristiti klasičnu instalacijsku verziju koju možete preuzeti sa službene Arduino stranice
Kôd Microsoft Visual Studio
Ovi dodaci za vizuelni studijski kod su obavezni
- Arduino
- Izvorno otklanjanje grešaka
Takođe preporučujem da instalirate ovaj dodatak koji omogućava inteligenciju za C/C ++
C/C ++
U ovom priručniku ću koristiti 2 radne fascikle:
D: / devel / ESP32 / tools / - ovde sam postavio sve alate
C: / Users / xxxxx / Documents / Arduino / YourProject / - ovo je fascikla sa skicom
možete postaviti svoje datoteke bilo gdje drugdje ako želite, samo nemojte zaboraviti ažurirati sve reference svojim stvarnim putem.
Korak 2: Instaliranje i konfiguracija upravljačkog programa
Čak i ako Windows prema zadanim postavkama automatski otkriva FT2232, zadani upravljački programi za Windows nisu dovoljni za sve napredne funkcije i potrebno je preuzeti i instalirati upravljački program sa web stranice FTDI
Kada je instaliran ispravan upravljački program, trebali biste vidjeti svoj FT2232 modul u upravitelju uređaja ne samo kao 2 serijska porta već i kao "USB serijski pretvarač A" i "USB serijski pretvarač B"
Drugi korak je promjena upravljačkog programa za jedan kanal našeg pretvarača. Preuzmite alat zadig sa stranice https://zadig.akeo.ie/. Ako dobro razumijem, ovaj alat povezuje winUSB upravljački program s FTDI uređajem koji omogućava nisku razinu komunikacije između openOCD -a i USB uređaja.
U zadig alatu u izborniku "Opcije" označite "Prikaži sve uređaje", tada biste trebali vidjeti svoj adapter na popisu dostupnih uređaja. Odaberite "Dual RS232-HS (Interface 0)", zatim odaberite zamjenski upravljački program "WinUSB v6.1.xxxx" i na kraju kliknite gumb za zamjenu upravljačkog programa.
Kada priključite svoj adapter na drugi USB priključak računara, potrebno je ponovo promijeniti postavke upravljačkog programa putem zadig alata, u suprotnom openOCD neće pronaći vaš adapter.
Korak 3: OpenOCD, Toolchain i Gdb
1. Otvoreni OCD je alat za otklanjanje grešaka u krugovima, s jedne strane razgovara sa čipom, s druge strane pruža gdb server na koji se debager (klijent) može povezati. Preuzmite openOCD za ESP32 s https://github.com/espressif/openocd-esp32/releases i raspakirajte ga u mapu D: / devel / ESP32 / tools
2. uredite openOCD konfiguracijske datoteke:
esp-wroom-32.cfg
Potpuna putanja do ove datoteke je:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg
U ovoj datoteci možete postaviti brzinu komunikacije promjenom parametra "adapter_khz". Na primjer, "adapter_khz 8000" znači 8Mhz.
Zadano je 20MHz i moglo bi biti previsoko ako koristite duže kratkospojne žice ili matičnu ploču. Preporučujem da počnete na 1Mhz i ako je sve u redu, idite na veću brzinu, za mene 8Mhz radi pouzdano.
minimodule.cfg
Potpuna putanja do ove datoteke je: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
Ako sam dobro shvatio, originalni minimalni modul je preskupa ploča za isključivanje sa FT 2232 proizvedena od FTDI -a i jedina razlika između originalnog minimalnog modula i jeftinog modula ili golog čipa dostupnog na tržištu je zadani USB opis. otvoreni OCD traži jtag adapter na osnovu opisa uređaja, također je potrebno prilagoditi izgled init -a.
Jeftini modul ima opis "Dual RS232-HS". Ako niste sigurni u opis svog uređaja, možete to provjeriti u upravitelju uređaja -> svojstva uređaja -> detalji kartice -> vrijednost svojstva "Opis uređaja prijavljen sabirnicom"
Sadržaj minimodule.cfg trebao bi izgledati kao primjer ispod, redovi koji počinju s # mogu se izbrisati.
sučelje 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 0x000x ftdi
esp32.cfg
Potpuna putanja do ove datoteke je:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg
Dodajte sljedeća 2 retka na kraj esp32.cfg. Bez ove izmjene dodavanje kočnih točaka neće funkcionirati.
#Force hw breakpoints. Jednom kada dobijemo memorijsku kartu, možemo dopustiti i softver bps.gdb_breakpoint_override hard
3. Preuzmite i instalirajte xtensa-esp32-elf alatni lanac-ovaj lanac alatki sadrži otklanjanje grešaka u komandnoj liniji (gdb klijent) koji je od vitalnog značaja za ispravno otklanjanje grešaka iz bilo kojeg grafičkog IDE-a. Bare lanac alata može se preuzeti sa web stranice espressif, odjeljak "Alternativno postavljanje"
Korak 4: Ožičenje i prvi test
Povežite modul FT2322 sa ESP -om. Preporučujem da koristite što je moguće kraće žice. Ako ste tek počeli s JTAG -om, ne zaboravite da će TDI adaptera ići na TDI čipa, također će TDO adaptera ići na TDO čipa. JTAG linije podataka NISU PRESJEČENE poput Rx/Tx na uart!
Za sljedeći test preporučujem učitavanje blink primjera skice ili neke druge skice koja može ukazati na to da li CPU radi ili ne trepćućom LED diodom ili zvučnim signalom ili upisom na serijsku konzolu.
Pokrenite openOCD slijedećom naredbom
D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f sučelje/ftdi/minimodule.cfg -f ploča /esp-wroom-32.cfg
Ovo će pokrenuti openOCD i ako je sve u redu, trebali biste vidjeti u ispisu naredbenog retka da sadrži sljedeće retke:
Podaci: brzina takta 8000 kHzInfo: JTAG dodir: esp32.cpu0 dodir/uređaj pronađen: 0x120034e5 (mfg: 0x272 (Tensilica), dio: 0x2003, ver: 0x1) Podaci: JTAG slavina: esp32.cpu1 dodir/uređaj pronađen: 0x120034e5 (mfg: 0x272 (Tensilica), dio: 0x2003, ver: 0x1)
Takođe, openocd proces će slušati na TCP portu 3333
Otvorite novi terminal i pokrenite gdb klijent naredbenog retka slijedeći naredbu
D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe
Pričekajte trenutak i kada gdb terminal bude spreman, upišite sljedeće naredbe jednu po jednu
cilj daljinski: 3333mon reset resetovanje nastaviti
prva naredba otvara vezu sa openocd serverom za otklanjanje grešaka, druga će zaustaviti izvršavanje programa na ESP -u i LED bi trebao prestati treptati, nastaviti sa obnavljanjem izvođenja programa i LED bi trebao ponovo početi treptati.
Korak 5: Dodajte konfiguraciju otklanjanja grešaka u kod Visual Studio
Pretpostavljam da ste u tom trenutku već ispravno konfigurirali vizualni studijski kod i arduino dodatak i možete provjeriti i postaviti svoju skicu na ploču. Ako nije, provjerite upute za konfiguriranje koda vizualnog studija i arduina, na primjer na ovoj stranici
Da bi otklanjanje grešaka radilo potrebno je odrediti izlaznu fasciklu za izgradnju. Ispod fascikle sa skicama nalazi se (skrivena) fascikla.vscode, gdje je datoteka arduino.json. ovoj datoteci dodaj sljedeći red:
"output": "BuildOutput/"
pokrenite verifikaciju ili otpremite i ponovo provjerite mapu skice, trebala bi postojati nova mapa BuildOutput i unutar nje datoteka s.elf ekstenzijom. elf datoteka je vitalna za otklanjanje grešaka.
Postavke otklanjanja grešaka nalaze se u datoteci launch.json. Kreirajte ovu datoteku sa sljedećim sadržajem ili je možete kopirati iz priloženog primjera projekta. Ne zaboravite prilagoditi red 26 i definirati ispravan put do vaše.elf datoteke vašeg projekta.
{// Koristite IntelliSense da biste saznali o mogućim atributima. // Zadržite pokazivač za prikaz opisa postojećih atributa. // Za više informacija posjetite: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [{"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 "}, {// dinamička varijanta" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statička varijanta //" text ":" datoteka 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 \.]*: / hardver "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}
Kako započeti otklanjanje grešaka:
- Poštujte i postavite svoju skicu na ploču
- Pokrenite openOCD s parametrima
- Postavite kočne točke u kodu gdje želite
- Nakon postavljanja svih kočnih točaka, provjerite jeste li otvorili glavnu.ino datoteku svog projekta. (ili putanja hard koda do.elf datoteke u launch.json)
- Otvori ploču za otklanjanje pogrešaka u kodu (Ctrl + Shift + D)
- Odaberite "Arduino-GDB-openOCD" debager, trebao bi biti dostupan samo.
- Pritisnite F5 da biste pokrenuli otklanjanje grešaka
Preporučuje se:
Kako doći do TAJNOG SVIJETA !!!!!! (Način otklanjanja grešaka): 3 koraka
Kako doći do TAJNOG SVIJETA !!!!!! (Način otklanjanja grešaka): U ovom uputstvu pokazat ću vam kako doći do načina rada tajnog svijeta u Minecraftu
HackerBox 0049: Otklanjanje grešaka: 8 koraka
HackerBox 0049: Otklanjanje grešaka: Pozdrav HackerBox hakerima širom svijeta! Za HackerBox 0049 eksperimentiramo sa otklanjanjem grešaka u sistemima digitalnih mikrokontrolera, konfiguriranjem LOLIN32 ESP-32 WiFi Bluetooth platforme u Arduino IDE-u, primjenom FastLED Animation L
Kako postaviti Windows ispravljač grešaka jezgre preko vaše mreže: 6 koraka
Kako postaviti Windows ispravljač grešaka jezgre preko vaše mreže: Otklanjanje grešaka je popularan alat koji se koristi za pronalaženje uzroka greške. Buba se može manifestovati na mnogo različitih načina. može uzrokovati pad sistema (plavi ekran/BSOD), može uzrokovati pad aplikacije, može uzrokovati zamrzavanje vašeg sistema da bi imenovao fe
Stražarski toranj protiv grešaka: 12 koraka
Stražarski toranj protiv grešaka: Mi smo studenti prve godine sa Zajedničkog instituta UM-SJTU, koji se nalazi u kampusu Ming Hang na Univerzitetu Jiaotong u Šangaju, Šangaj, Kina. Ovdje smo da formiramo grupu 13 za VG100 Uvod u inženjering kurs ZP -a i
Serijsko otklanjanje grešaka s CloudX -om: 3 koraka
Serijsko otklanjanje grešaka pomoću CloudX -a: U ovom projektu, cilj mi je objasniti koncept otklanjanja grešaka putem serijskog terminala. No, kao početnik, dopustimo objašnjenje njegovog koncepta kroz njegova značenja.1. serijska komunikacija serijska komunikacija služi za komunikaciju između CloudX bo