Kazalo:

ESP32 - Poceni rešitev za odpravljanje napak v Circruit: 5 korakov
ESP32 - Poceni rešitev za odpravljanje napak v Circruit: 5 korakov

Video: ESP32 - Poceni rešitev za odpravljanje napak v Circruit: 5 korakov

Video: ESP32 - Poceni rešitev za odpravljanje napak v Circruit: 5 korakov
Video: Proyecto de heliostato Templastat / Templastat Heliostat Project: improvements, updates and test 2024, November
Anonim
ESP32 - Poceni rešitev za odpravljanje napak v Circruit
ESP32 - Poceni rešitev za odpravljanje napak v Circruit

Pozdravljeni, V tem navodilu je opisano, kako nastaviti poceni adapter JTAG na osnovi čipa FTDI 2232HL, z vizualno kodo in dodatkom arduino.

- Modul FTDI 2232HL s priključkom USB od 8 USD na ebayu in plačljiva programska oprema ni potrebna. To je odlična rešitev za ljubitelje, ki ne želijo porabiti 50 USD+ za profesionalni adapter JTAG.

- Ta adapter se lahko uporablja za odpravljanje napak na drugih platformah, kot so ESP8266, ARM, AVR in mnoge druge. Nekatere konfiguracije so odvisne od ciljne platforme, to navodilo zajema samo nastavitve za ESP32.

- Če že imate vmesnik JTAG, ga lahko uporabite, ko ga podpira openOCD, samo zaženite openocd z drugo konfiguracijsko datoteko glede na vrsto vašega vmesnika jtag.

- platform.io vam lahko olajša nastavitev, vendar je odpravljanje napak podprto samo v plačljivi profesionalni različici.

- Deluje z večino modulov ESP32. (na primer poceni wemos lolin 32)

- ta vmesnik jtag bi moral delovati tudi z Linuxom, vendar ga osebno nisem preizkusil.

1. korak: Predpogoji za programsko opremo

Arduino IDE različice 1.8 ali novejše. Različica trgovine Windows ni podprta. Uporabiti morate klasično različico namestitvenega programa, ki jo lahko prenesete s uradne strani Arduino

Koda Microsoft Visual Studio

Ti dodatki za kodo vizualnega studia so obvezni

  • Arduino
  • Izvorno odpravljanje napak

Priporočam tudi, da namestite ta dodatek, ki omogoča inteligenco za C/C ++

C/C ++

V tem priročniku bom uporabil 2 delovni mapi:

D: / devel / ESP32 / tools / - sem postavil vsa orodja

C: / Users / xxxxx / Documents / Arduino / YourProject / - to je mapa s skico

svoje datoteke lahko postavite kamor koli drugam, če želite, samo ne pozabite posodobiti vseh referenc s svojo dejansko potjo.

2. korak: Namestitev in konfiguracija gonilnika

Namestitev in konfiguracija gonilnika
Namestitev in konfiguracija gonilnika
Namestitev in konfiguracija gonilnika
Namestitev in konfiguracija gonilnika
Namestitev in konfiguracija gonilnika
Namestitev in konfiguracija gonilnika

Tudi če okna privzeto samodejno zaznajo FT2232, privzeti gonilniki za Windows ne zadoščajo za vse napredne funkcije, zato morate gonilnik prenesti in namestiti s spletnega mesta FTDI

Ko je nameščen pravilen gonilnik, morate v upravitelju naprav videti svoj modul FT2232 ne le kot 2 zaporedna vrata, ampak tudi kot "serijski pretvornik USB A" in "serijski pretvornik USB B"

Drugi korak je zamenjava gonilnika za en kanal našega pretvornika. Prenesite orodje zadig s spletnega mesta https://zadig.akeo.ie/. Če prav razumem, to orodje poveže gonilnik winUSB z napravo FTDI, ki omogoča nizko raven komunikacije med openOCD in napravo USB.

V orodju zadig v meniju »Možnosti« potrdite polje »Pokaži vse naprave«, nato bi morali videti svoj adapter na seznamu razpoložljivih naprav. Izberite "Dual RS232-HS (Interface 0)", nato izberite nadomestni gonilnik "WinUSB v6.1.xxxx" in končno kliknite gumb za zamenjavo gonilnika.

Ko priključite adapter na druga vrata USB v računalniku, morate znova spremeniti nastavitve gonilnika prek orodja zadig, sicer OpenOCD ne bo našel vašega adapterja.

3. korak: OpenOCD, Toolchain in Gdb

OpenOCD, Toolchain in Gdb
OpenOCD, Toolchain in Gdb

1. Odprti OCD je orodje za razhroščevanje krogov, na eni strani se pogovarja s čipom, na drugi strani pa ponuja strežnik gdb, na katerega se lahko razhroščevalnik (odjemalec) poveže. Prenesite openOCD za ESP32 s spletnega mesta https://github.com/espressif/openocd-esp32/releases in ga razpakirajte v mapo D: / devel / ESP32 / tools

2. uredite konfiguracijske datoteke openOCD:

esp-wroom-32.cfg

Celotna pot do te datoteke je:

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

V tej datoteki lahko nastavite hitrost komunikacije s spremembo parametra "adapter_khz". Na primer "adapter_khz 8000" pomeni 8Mhz.

Privzeto je 20 MHz in je lahko previsoko, če uporabljate daljše mostične žice ali ploščo. Priporočam, da začnete pri 1Mhz in če je vse v redu, pojdite na višjo hitrost, zame 8Mhz deluje zanesljivo.

minimodule.cfg

Celotna pot do te datoteke je: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Če prav razumem, je originalni minimodul predraga zavorna plošča s FT 2232 proizvajalca FTDI in edina razlika med pristnim minimodulom in poceni modulom ali golim čipom, ki je na voljo na trgu, je privzeti opis USB. open OCD išče adapter jtag na podlagi opisa naprave, prilagoditi je treba tudi postavitev init.

Poceni modul ima opis "Dvojni RS232-HS". Če niste prepričani o opisu svoje naprave, jo lahko preverite v upravitelju naprav -> lastnosti naprave -> podrobnosti zavihka -> vrednost lastnosti "Opis naprave, o kateri poroča vodilo"

Vsebina minimodule.cfg bi morala izgledati kot spodnji primer, vrstice se začnejo z # je mogoče izbrisati.

vmesnik ftdi #ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "Dvojni RS232 -HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000ST ftdali 0x000s ftdi

esp32.cfg

Celotna pot do te datoteke je:

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

Naslednje 2 vrstici dodajte na konec esp32.cfg. Brez te spremembe dodajanje zavornih točk ne bo delovalo.

#Force hw breakpoints. Ko imamo pomnilniški zemljevid, lahko programsko opremo bps.gdb_breakpoint_override tudi težko dovolimo

3. Prenesite in namestite verigo orodij xtensa-esp32-elf-ta orodjarna vsebuje razhroščevalnik ukazne vrstice (odjemalec gdb), ki je ključnega pomena za odpravljanje napak v kateri koli grafični IDE. Bare toolchain lahko prenesete s spletnega mesta espressif, razdelek "Alternativna nastavitev"

4. korak: Ožičenje in prvi preskus

Ožičenje in prvi preskus
Ožičenje in prvi preskus
Ožičenje in prvi preskus
Ožičenje in prvi preskus

Povežite modul FT2322 z ESP. Priporočam uporabo čim krajših žic. Če ste novi v JTAG -u, ne pozabite, da bo TDI adapterja prešel na TDI čipa, tudi TDO adapterja bo prešel na TDO čipa. Podatkovne vrstice JTAG NI PRESEČENE kot Rx/Tx na uart!

Za naslednji preizkus priporočam nalaganje utripajoče skice ali kakšne druge skice, ki lahko označi, ali CPU deluje ali ne, z utripajočo LED ali piskom ali pisanjem na serijsko konzolo.

Zaženite openOCD z naslednjim ukazom

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f vmesnik/ftdi/minimodule.cfg -f plošča /esp-wroom-32.cfg

S tem se bo odprl openOCD in če je vse v redu, bi morali v izhodu ukazne vrstice videti naslednje vrstice:

Podatki: takta 8000 kHz Info: JTAG pipa: esp32.cpu0 Najdena pipa/naprava: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1) Podatki: JTAG pipa: esp32.cpu1 pipe/najdena naprava: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1)

Tudi postopek openocd bo poslušal na vratih TCP 3333

Odprite nov terminal in zaženite odjemalca gdb ukazne vrstice, tako da sledite ukazu

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

Počakajte sekundo in ko bo terminal gdb pripravljen, enega za drugim napišite naslednje ukaze

target remote: 3333mon reset ponastavitev nadaljuj

prvi ukaz odpre povezavo s strežnikom za odpravljanje napak openocd, drugi ustavi izvajanje programa na ESP in LED naj preneha utripati, nadaljuje obnovitev izvajanja programa in LED mora ponovno utripati.

5. korak: Konfiguracijo odpravljanja napak dodajte kodi Visual Studio

Dodajte kodo za odpravljanje napak v kodo Visual Studio
Dodajte kodo za odpravljanje napak v kodo Visual Studio

Predvidevam, da ste takrat že pravilno konfigurirali kodo vizualnega studia in dodatek arduino ter lahko svojo skico preverite in naložite na tablo. Če ne, preverite nekaj navodil, kako konfigurirati kodo vizualnega studia in arduino, na primer na tej strani

Če želite, da razhroščevanje deluje, je potrebno določiti izhodno mapo gradnje. Pod mapo skice je (skrita) mapa.vscode, kjer je datoteka arduino.json. tej datoteki dodajte naslednjo vrstico:

"output": "BuildOutput/"

zaženite preverjanje ali naložite in znova preverite mapo skice, mora biti nova mapa BuildOutput in v njej datoteka z razširitvijo.elf. Datoteka elf je ključnega pomena za odpravljanje napak.

Nastavitve razhroščevalnika so v datoteki launch.json. Ustvarite to datoteko z naslednjo vsebino ali pa jo kopirajte iz priloženega primera projekta. Ne pozabite prilagoditi vrstice 26 in določiti pravilno pot do datoteke.elf vašega projekta.

{// Uporabite IntelliSense, če želite izvedeti več o možnih atributih. // Premaknite miškin kazalec za ogled opisov obstoječih atributov. // Za več informacij obiščite: 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čna varianta" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statična varianta //" 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 \.]*: / strojna oprema "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}

Kako začeti odpravljanje napak:

  1. Upoštevajte in naložite svojo skico na desko
  2. Zaženite openOCD s parametri
  3. Nastavite zavorne točke v kodi, kjer želite
  4. Ko nastavite vse zavorne točke, se prepričajte, da ste odprli glavno datoteko.ino projekta. (ali pot do trde kode do datoteke.elf v launch.json)
  5. Odpri ploščo za odpravljanje napak v kodi (Ctrl + Shift + D)
  6. Izberite iskalnik napak "Arduino-GDB-openOCD", na voljo mora biti samo.
  7. Pritisnite F5 za začetek odpravljanja napak

Priporočena: