Satura rādītājs:

ESP32 - lēts risinājums Circruit atkļūdošanai: 5 soļi
ESP32 - lēts risinājums Circruit atkļūdošanai: 5 soļi

Video: ESP32 - lēts risinājums Circruit atkļūdošanai: 5 soļi

Video: ESP32 - lēts risinājums Circruit atkļūdošanai: 5 soļi
Video: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, Novembris
Anonim
ESP32 - lēts risinājums Circruit atkļūdošanai
ESP32 - lēts risinājums Circruit atkļūdošanai

Labdien! Šajā pamācībā ir aprakstīts, kā iestatīt lētu JTAG adapteri, kura pamatā ir FTDI 2232HL mikroshēma, ar vizuālo kodu un arduino papildinājumu.

- FTDI 2232HL modulis ar USB savienotāju, sākot no 8 USD ebay, un nav nepieciešama maksas programmatūra. Tas ir lielisks risinājums hobijniekiem, kuri nevēlas tērēt 50 USD+ profesionālam JTAG adapterim.

- Šo adapteri var izmantot citu platformu, piemēram, ESP8266, ARM, AVR un daudzu citu, atkļūdošanai. Daļa konfigurācijas ir atkarīga no mērķa platformas, šī instrukcija attiecas tikai uz ESP32 iestatīšanu.

- Ja jums jau pieder kāds JTAG adapteris, varat to izmantot, ja to atbalsta openOCD, vienkārši sāciet openocd ar citu konfigurācijas failu atkarībā no jūsu jtag adaptera veida.

- platform.io var atvieglot iestatīšanu, taču atkļūdošana tiek atbalstīta tikai maksas profesionālajā versijā.

- Darbojas ar lielāko daļu ESP32 moduļu. (piemēram, lēts wemos lolin 32)

- šim jtag adapterim vajadzētu darboties arī ar Linux, bet es personīgi to nepārbaudīju.

1. darbība. Programmatūras priekšnosacījumi

Arduino IDE versija 1.8 vai jaunāka. Windows veikala versija netiek atbalstīta. Jums jāizmanto klasiskā instalētāja versija, kuru var lejupielādēt no oficiālās Arduino lapas

Microsoft vizuālās studijas kods

Šie vizuālās studijas koda papildinājumi ir obligāti

  • Arduino
  • Vietējā atkļūdošana

Es arī iesaku instalēt šo papildinājumu, kas iespējo intelisense C/C ++

C/C ++

Šajā rokasgrāmatā es izmantošu 2 darba mapes:

D: / devel / ESP32 / tools / - šeit esmu ievietojis visus rīkus

C: / Users / xxxxx / Documents / Arduino / YourProject / - šī ir mape ar skici

ja vēlaties, varat ievietot failus jebkur citur, lūdzu, neaizmirstiet atjaunināt visas atsauces ar savu faktisko ceļu.

2. darbība: draivera instalēšana un konfigurēšana

Draivera instalēšana un konfigurēšana
Draivera instalēšana un konfigurēšana
Draivera instalēšana un konfigurēšana
Draivera instalēšana un konfigurēšana
Draivera instalēšana un konfigurēšana
Draivera instalēšana un konfigurēšana

Pat ja Windows pēc noklusējuma automātiski nosaka FT2232, Windows noklusējuma draiveri nav pietiekami visām iepriekšējām funkcijām, un ir nepieciešams lejupielādēt un instalēt draiveri no FTDI vietnes

Kad ir instalēts pareizais draiveris, FT2232 modulis ierīču pārvaldniekā jāredz ne tikai kā divi seriālie porti, bet arī kā "USB sērijas pārveidotājs A" un "USB sērijas pārveidotājs B"

Otrais solis ir mainīt draiveri vienam mūsu pārveidotāja kanālam. Lejupielādējiet rīku zadig no vietnes https://zadig.akeo.ie/. Ja pareizi saprotu, šis rīks sasaista winUSB draiveri ar FTDI ierīci, kas nodrošina zema līmeņa saziņu starp openOCD un USB ierīci.

Zadig rīkā izvēlnē "Opcijas" atzīmējiet "Rādīt visas ierīces", tad pieejamo ierīču sarakstā vajadzētu redzēt savu adapteri. Atlasiet "Dual RS232-HS (interfeiss 0)", pēc tam atlasiet draivera nomaiņu "WinUSB v6.1.xxxx" un visbeidzot noklikšķiniet uz pogas Aizstāt draiveri.

Pievienojot adapteri citam datora USB portam, ir nepieciešams vēlreiz mainīt draivera iestatījumus, izmantojot zadig rīku, pretējā gadījumā openOCD neatradīs jūsu adapteri.

3. darbība: OpenOCD, Toolchain un Gdb

OpenOCD, Toolchain un Gdb
OpenOCD, Toolchain un Gdb

1. Atvērtā OCD ir instruments cirkulācijas atkļūdošanai, no vienas puses tā runā ar mikroshēmu, no otras puses, tas nodrošina gdb serveri, kur var izveidot savienojumu ar atkļūdotāju (klientu). Lejupielādējiet openOCD ESP32 no vietnes https://github.com/espressif/openocd-esp32/releases un izpakojiet to mapē D: / devel / ESP32 / tools

2. rediģējiet openOCD konfigurācijas failus:

esp-wroom-32.cfg

Pilns ceļš uz šo failu ir šāds:

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

Šajā failā jūs varat iestatīt sakaru ātrumu, mainot parametru "adapter_khz". Piemēram, "adapter_khz 8000" nozīmē 8Mhz.

Noklusējums ir 20MHz, un tas var būt pārāk augsts, ja izmantojat garākus savienojuma vadus vai rīvdēli. Es iesaku sākt ar 1Mhz un, ja viss ir kārtībā, dodieties uz lielāku ātrumu, man 8Mhz darbojas droši.

minimodule.cfg

Pilns ceļš uz šo failu: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimalodule.cfg

Ja es pareizi saprotu, oriģinālais minimālais modulis ir pārāk dārga bremžu plāksne ar FT 2232, ko ražo FTDI, un vienīgā atšķirība starp oriģinālo minimālo moduli un tirgū pieejamo lēto moduli vai tukšo mikroshēmu ir noklusējuma USB apraksts. open OCD meklē jtag adapteri, pamatojoties uz ierīces aprakstu, kā arī jāpielāgo izkārtojuma init.

Lētajam modulim ir apraksts "Dual RS232-HS". Ja neesat pārliecināts par savas ierīces aprakstu, varat to pārbaudīt ierīces pārvaldniekā -> ierīces rekvizīti -> cilnes informācija -> rekvizīta "Autobusu ziņotais ierīces apraksts" vērtība

Minimodule.cfg saturam vajadzētu izskatīties zemāk esošajā piemērā, rindas, kas sākas ar #, var izdzēst.

interfeiss 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 ftdi_layout_sign

esp32.cfg

Pilns ceļš uz šo failu ir šāds:

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

Esp32.cfg beigās pievienojiet šādas 2 rindiņas. Bez šīs izmaiņas bremzēšanas punktu pievienošana nedarbosies.

#Piespiest hw pārtraukuma punktus. Kad mums ir atmiņas karte, mēs varam arī atļaut programmatūru bps.gdb_breakpoint_override grūti

3. Lejupielādējiet un instalējiet xtensa-esp32-elf toolchain-šajā rīku ķēdē ir komandrindas atkļūdotājs (gdb klients), kas ir būtiski, lai darbotos atkļūdošana no jebkura grafiskā IDE. Bare toolchain var lejupielādēt no espressif vietnes sadaļas "Alternatīva iestatīšana"

4. solis: Elektroinstalācija un pirmā pārbaude

Elektroinstalācija un pirmā pārbaude
Elektroinstalācija un pirmā pārbaude
Elektroinstalācija un pirmā pārbaude
Elektroinstalācija un pirmā pārbaude

Savienojiet FT2322 moduli ar ESP. Es iesaku izmantot pēc iespējas īsākus vadus. Ja esat jauns JTAG lietotājs, neaizmirstiet, ka adaptera TDI tiks izmantots mikroshēmas TDI, kā arī adaptera TDO - mikroshēmas TDO. JTAG datu līnijas nav šķērsotas kā Rx/Tx uz uart!

Šim testam es iesaku augšupielādēt mirgošanas piemēra skici vai kādu citu skici, kas var norādīt, vai centrālais procesors darbojas vai nē, mirgojoša gaismas diode vai pīkstot vai rakstot sērijas konsolē.

Sāciet openOCD, izpildot komandu

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimalodule.cfg -f tāfele /esp-wroom-32.cfg

Tas sāks openOCD, un, ja viss ir kārtībā, komandrindas izvadā vajadzētu redzēt šādas rindas:

Informācija: pulksteņa ātrums 8000 kHz Informācija: JTAG pieskāriens: esp32.cpu0 pieskāriens/ierīce atrasta: 0x120034e5 (mfg: 0x272 (Tensilica), daļa: 0x2003, ver: 0x1) Informācija: JTAG pieskāriens: esp32.cpu1 pieskāriens/atrasta ierīce: 0x120034e5 (mfg: 0x272 (Tensilica), daļa: 0x2003, ver: 0x1)

Arī openocd process klausīsies TCP portā 3333

Atveriet jaunu termināli un palaidiet komandrindas gdb klientu, izpildot komandu

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

Pagaidiet sekundi un, kad gdb terminālis būs gatavs, rakstiet šādas komandas pa vienai

mērķa tālvadības pults: 3333mon atiestatīšanas apturēšana

pirmā komanda atver savienojumu ar openocd atkļūdošanas serveri, otrā pārtrauks programmas izpildi ESP, un gaismas diodei jāpārstāj mirgot, jāturpina atjaunot programmas izpildi un gaismas diodei jāsāk atkal mirgot.

5. darbība. Pievienojiet atkļūdošanas konfigurāciju Visual Studio kodam

Pievienojiet atkļūdošanas konfigurāciju Visual Studio kodam
Pievienojiet atkļūdošanas konfigurāciju Visual Studio kodam

Pieņemu, ka tajā brīdī jūs jau esat pareizi konfigurējis vizuālās studijas kodu un arduino papildinājumu, un jūs varat pārbaudīt un augšupielādēt savu skici uz tāfeles. Ja nē, lūdzu, pārbaudiet dažus norādījumus, kā konfigurēt vizuālās studijas kodu un arduino, piemēram, šajā lapā

Lai atkļūdošana darbotos, ir jānorāda būvējuma izvades mape. Zem jūsu skiču mapes ir (slēpta) mape.vscode, kur atrodas fails arduino.json. pievienojiet šim failam šādu rindu:

"output": "BuildOutput/"

palaidiet verificēšanu vai augšupielādi un vēlreiz pārbaudiet savu skiču mapi, jābūt jaunai mapei BuildOutput un tās iekšienē esošajam failam ar paplašinājumu.elf. elf fails ir būtisks atkļūdošanai.

Atkļūdotāja iestatījumi atrodas failā launch.json. Izveidojiet šo failu ar šādu saturu, vai arī varat nokopēt šo failu no pievienotā projekta parauga. Neaizmirstiet noregulēt 26. rindu un definēt pareizo ceļu uz projekta.elf failu.

{// Izmantojiet IntelliSense, lai uzzinātu par iespējamiem atribūtiem. // Virziet kursoru, lai skatītu esošo atribūtu aprakstus. // Lai iegūtu papildinformāciju, apmeklējiet: https://go.microsoft.com/fwlink/?linkid=830387 "versija": "0.2.0", "konfigurācijas": [{"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 "}, {// dinamiskais variants" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statiskais variants //" text ":" fails c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Informācija \: [w / d \.]*: / aparatūra "," launchCompleteCommand ":" exec-turpināt "," filterStderr ": true," args ": }]}

Kā sākt atkļūdošanu:

  1. Izpildiet un augšupielādējiet savu skici
  2. Sāciet openOCD ar parametriem
  3. Norādiet bremzēšanas punktus kodā, kur vēlaties
  4. Pēc visu bremzēšanas punktu iestatīšanas pārliecinieties, vai esat atvēris projekta galveno.ino failu. (vai cietā koda ceļš uz.elf failu vietnē launch.json)
  5. Atvērt atkļūdošanas paneli salīdzinājumā ar kodu (Ctrl + Shift + D)
  6. Atlasiet atkļūdotāju "Arduino-GDB-openOCD", tam vajadzētu būt pieejamam.
  7. Lai sāktu atkļūdošanu, nospiediet F5

Ieteicams: