Sadržaj:

ESP32 - Jeftino rješenje za uklanjanje pogrešaka u Circruit: 5 koraka
ESP32 - Jeftino rješenje za uklanjanje pogrešaka u Circruit: 5 koraka

Video: ESP32 - Jeftino rješenje za uklanjanje pogrešaka u Circruit: 5 koraka

Video: ESP32 - Jeftino rješenje za uklanjanje pogrešaka u Circruit: 5 koraka
Video: PWM DC Motor control with Arduino and L298N Module with library - Robojax 2024, Srpanj
Anonim
ESP32 - Jeftino rješenje za u Circruit Debug
ESP32 - Jeftino rješenje za u Circruit Debug

Poštovani, U ovoj uputi opisano je kako postaviti jeftini JTAG adapter na temelju FTDI 2232HL čipa, s vizualnim kodom i arduino dodatkom.

- FTDI 2232HL modul s USB priključkom već od 8 USD na ebayu i nije potreban softver koji se plaća. Ovo je izvrsno rješenje za ljubitelje koji ne žele potrošiti 50 USD+ na profesionalni JTAG adapter.

- Ovaj se adapter može koristiti za ispravljanje pogrešaka na drugim platformama poput ESP8266, ARM, AVR i mnogih drugih. Neka konfiguracija ovisi o ciljnoj platformi, ova uputa 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 pogrešaka podržano je samo u profesionalnoj verziji koja se plaća.

- Radi s većinom ESP32 modula. (na primjer jeftini wemos lolin 32)

- ovaj jtag adapter trebao bi raditi i s linuxom, ali osobno ga nisam testirao.

Korak 1: Softverski zahtjevi

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 vizualni studijski kod su obavezni

  • Arduino
  • Izvorno ispravljanje pogrešaka

Također preporučujem da instalirate ovaj dodatak koji omogućuje inteligenciju za C/C ++

C/C ++

U ovom priručniku koristit ću 2 radne mape:

D: / devel / ESP32 / tools / - ovdje sam smjestio sve alate

C: / Users / xxxxx / Documents / Arduino / YourProject / - ovo je mapa sa skicom

svoje datoteke možete postaviti bilo gdje drugdje, samo nemojte zaboraviti ažurirati sve reference svojim stvarnim putem.

Korak 2: Instaliranje i konfiguracija upravljačkog programa

Instalacija i konfiguracija upravljačkog programa
Instalacija i konfiguracija upravljačkog programa
Instalacija i konfiguracija upravljačkog programa
Instalacija i konfiguracija upravljačkog programa
Instalacija i konfiguracija upravljačkog programa
Instalacija i konfiguracija upravljačkog programa

Čak i ako Windows prema zadanim postavkama automatski detektira FT2232, zadani upravljački programi za Windows nisu dovoljni za sve napredne značajke, pa je potrebno preuzeti i instalirati upravljački program s web stranice FTDI

Kad 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 zadig alat s https://zadig.akeo.ie/. Ako dobro razumijem, ovaj alat povezuje winUSB upravljački program s FTDI uređajem koji omogućuje 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.

Kad priključite svoj adapter na drugi USB priključak vašeg računala, potrebno je ponovno promijeniti postavke upravljačkog programa putem zadig alata, osim toga openOCD neće pronaći vaš adapter.

Korak 3: OpenOCD, Toolchain i Gdb

OpenOCD, Toolchain i Gdb
OpenOCD, Toolchain i Gdb

1. Otvoreni OCD je alat za otkrivanje pogrešaka u krugovima, s jedne strane razgovara s čipom, s druge strane pruža gdb poslužitelj na koji se program za otklanjanje pogrešaka (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

Puni put 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 20 MHz i moglo bi biti previsoko ako koristite dulje 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

Puni put 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 s FT 2232 proizvođača FTDI, a 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 temelju opisa uređaja, također je potrebno prilagoditi izgled init.

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 -> pojedinosti kartice -> vrijednost svojstva "Opis uređaja prijavljen sabirnicom"

Sadržaj minimodule.cfg trebao bi izgledati kao primjer u nastavku, retci 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

Puni put 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. Nakon što dobijemo memorijsku kartu, možemo dopustiti i softverski bps.gdb_breakpoint_override hard

3. Preuzmite i instalirajte xtensa-esp32-elf alatni lanac-ovaj lanac alata sadrži alat za ispravljanje pogrešaka naredbenog retka (gdb klijent) koji je od vitalne važnosti za ispravno otklanjanje pogrešaka iz bilo kojeg grafičkog IDE-a. Bare toolchain može se preuzeti sa web stranice espressif, odjeljak "Alternativno postavljanje"

Korak 4: Ožičenje i prvi test

Ožičenje i prvi test
Ožičenje i prvi test
Ožičenje i prvi test
Ožičenje i prvi test

Povežite modul FT2322 s ESP -om. Preporučujem korištenje što kraćih žica. Ako ste tek počeli koristiti JTAG, ne zaboravite da će TDI adaptera ići na TDI čipa, a TDO adaptera će ići i na TDO čipa. JTAG podatkovne linije NISU PRESJEČENE poput Rx/Tx na uart!

Za sljedeći test preporučujem učitavanje primjerice treptaja treptaja 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: radni takt 8000 kHzInfo: JTAG slavina: esp32.cpu0 dodir/uređaj pronađen: 0x120034e5 (mfg: 0x272 (Tensilica), dio: 0x2003, ver: 0x1) Podaci: JTAG slavina: esp32.cpu1 slavina/pronađeni uređaj: 0x120034e5 (mfg: 0x272 (Tensilica), dio: 0x2003, ver: 0x1)

Također openocd proces poslušat će 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 halt nastaviti

prva naredba otvara vezu s openocd poslužiteljem za otklanjanje pogrešaka, druga će zaustaviti izvršavanje programa na ESP -u, a LED bi trebao prestati treptati, nastaviti s obnavljanjem izvođenja programa i LED bi trebao ponovno početi treptati.

Korak 5: Dodajte konfiguraciju otklanjanja pogrešaka u kod programa Visual Studio

Dodajte konfiguraciju otklanjanja pogrešaka u kôd Visual Studija
Dodajte konfiguraciju otklanjanja pogrešaka u kôd Visual Studija

Pretpostavljam da ste u tom trenutku već ispravno konfigurirali vizualni studijski kod i arduino dodatak te možete provjeriti i prenijeti svoju skicu na ploču. Ako nije, provjerite neke upute za konfiguriranje koda vizualnog studija i arduina, na primjer na ovoj stranici

Za ispravljanje pogrešaka potrebno je odrediti izlaznu mapu za izgradnju. Ispod mape s skicama nalazi se (skrivena) mapa.vscode, gdje je datoteka arduino.json. ovoj datoteci dodajte sljedeći redak:

"output": "BuildOutput/"

pokrenite verifikaciju ili učitajte i ponovo provjerite mapu skice, trebala bi postojati nova mapa BuildOutput i unutar nje datoteka s.elf proširenjem. elf datoteka je vitalna za ispravljanje pogrešaka.

Postavke ispravljača pogrešaka nalaze se u datoteci launch.json. Napravite ovu datoteku sa sljedećim sadržajem ili je možete kopirati iz priloženog primjera projekta. Ne zaboravite prilagoditi redak 26 i definirati ispravan put do.elf datoteke vašeg projekta.

{// Upotrijebite 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 pogrešaka:

  1. Poštujte i postavite svoju skicu na ploču
  2. Pokrenite openOCD s parametrima
  3. Postavite točke kočenja u kodu gdje želite
  4. Nakon postavljanja svih kočnih točaka, provjerite jeste li otvorili glavnu.ino datoteku svog projekta. (ili hardcode put do.elf datoteke u launch.json)
  5. Otvori ploču za otklanjanje pogrešaka u kodu (Ctrl + Shift + D)
  6. Odaberite alat za ispravljanje pogrešaka "Arduino-GDB-openOCD", trebao bi biti dostupan samo.
  7. Pritisnite F5 da biste pokrenuli ispravljanje pogrešaka

Preporučeni: