Kazalo:
- 1. korak: Predpogoji za programsko opremo
- 2. korak: Namestitev in konfiguracija gonilnika
- 3. korak: OpenOCD, Toolchain in Gdb
- 4. korak: Ožičenje in prvi preskus
- 5. korak: Konfiguracijo odpravljanja napak dodajte kodi Visual Studio
Video: ESP32 - Poceni rešitev za odpravljanje napak v Circruit: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
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
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
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
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
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:
- Upoštevajte in naložite svojo skico na desko
- Zaženite openOCD s parametri
- Nastavite zavorne točke v kodi, kjer želite
- 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)
- Odpri ploščo za odpravljanje napak v kodi (Ctrl + Shift + D)
- Izberite iskalnik napak "Arduino-GDB-openOCD", na voljo mora biti samo.
- Pritisnite F5 za začetek odpravljanja napak
Priporočena:
Kako priti do TAJNEGA SVETA !!!!!! (Način odpravljanja napak): 3 koraki
Kako priti do TAJNEGA SVETA !!!!!! (Način odpravljanja napak): V tem navodilu vam bom pokazal, kako priti do načina skrivnega sveta v Minecraftu
Odkrivanje napak toplotne črpalke in alarm ESP8266, Openhab, Telegram, MQTT na baterije: 5 korakov
Odkrivanje napak toplotne črpalke in alarm ESP8266, Openhab, Telegram, MQTT na baterije: Moja toplotna črpalka za ogrevanje hiše in vode občasno dobi napako. Te napake ni mogoče zlahka opaziti, saj ni rdeče luči ali česa drugega, le majhen 'P' na majhnem LCD zaslonu. Zato sem naredil ta detektor za odkrivanje napake in
HackerBox 0049: Odpravljanje napak: 8 korakov
HackerBox 0049: Odpravljanje napak: Lep pozdrav hekerjem HackerBox po vsem svetu! Za HackerBox 0049 eksperimentiramo z odpravljanjem napak v sistemih digitalnih mikrokrmilnikov, konfiguriramo platformo Bluetooth LOLIN32 ESP-32 WiFi v Arduino IDE in uporabljamo FastLED Animation L
Osnovno odpravljanje napak Java: 9 korakov
Osnovno odpravljanje napak Java: Ta priročnik z navodili zajema osnovno preverjanje ravnanja z napakami Java po korakih. Ta priročnik ne nudi nobene pomoči pri nastavitvi programske opreme za programiranje Java in pričakuje, da ste to nalogo že opravili vnaprej. Za najboljše
Serijsko odpravljanje napak z CloudX: 3 koraki
Serijsko odpravljanje napak z CloudX: V tem projektu želim razložiti koncept odpravljanja napak prek serijskega terminala. Najprej pa za začetek razložimo njegov pojem skozi pomene. serijska komunikacija serijska komunikacija je namenjena komunikaciji med boom CloudX