Përmbajtje:

ESP32 - Zgjidhje e lirë për Debug në Circruit: 5 hapa
ESP32 - Zgjidhje e lirë për Debug në Circruit: 5 hapa

Video: ESP32 - Zgjidhje e lirë për Debug në Circruit: 5 hapa

Video: ESP32 - Zgjidhje e lirë për Debug në Circruit: 5 hapa
Video: Измерение 5A-30A переменного и постоянного тока с использованием ACS712 с библиотекой Robojax 2024, Nëntor
Anonim
ESP32 - Zgjidhje e lirë për korrigjimin në Circruit
ESP32 - Zgjidhje e lirë për korrigjimin në Circruit

Përshëndetje, Në këtë udhëzues përshkruhet se si të vendosni një përshtatës të lirë JTAG bazuar në çipin FTDI 2232HL, me kod vizual dhe shtesë arduino.

- Moduli FTDI 2232HL me lidhës USB që fillon nga 8 $ në ebay dhe nuk kërkohet softuer me pagesë. Kjo është një zgjidhje e shkëlqyeshme për hobistët që nuk duan të shpenzojnë 50 $+ në përshtatës profesionale JTAG.

- Ky përshtatës mund të përdoret për korrigjimin e platformave të tjera si ESP8266, ARM, AVR dhe shumë të tjera. Disa konfigurime varen nga platforma e synuar, ky udhëzim mbulon vetëm konfigurimin për ESP32.

- Nëse tashmë zotëroni një përshtatës JTAG, mund ta përdorni kur mbështetet nga openOCD, thjesht filloni openocd me skedarë konfigurimi të ndryshëm bazuar në llojin e përshtatësit tuaj jtag.

- platform.io mund ta bëjë konfigurimin më të lehtë për ju, por debug -u mbështetet vetëm në versionin profesional të paguar.

- Punon me shumicën e moduleve ESP32. (për shembull wemos lirë lolin 32)

- ky përshtatës jtag duhet të funksionojë edhe me linux, por unë personalisht nuk e kam testuar atë.

Hapi 1: Kërkesat e softuerit

Arduino IDE versioni 1.8 ose më i ri. Versioni i dyqanit të Windows nuk mbështetet. Ju duhet të përdorni versionin klasik të instaluesit i cili mund të shkarkohet nga faqja zyrtare e Arduino

Kodi i studios vizuale të Microsoft

Këto shtesa për kodin vizual të studios janë të detyrueshme

  • Arduino
  • Korrigjimi amtare

Unë gjithashtu rekomandoj që të instaloni këtë shtesë që mundëson inteligjencën për C/C ++

C/C ++

Në këtë manual unë do të përdor 2 dosje pune:

D: / devel / ESP32 / tools / - këtu kam vendosur të gjitha mjetet

C: / Users / xxxxx / Documents / Arduino / YourProject / - kjo është dosje me skicë

ju mund t'i vendosni skedarët tuaj kudo tjetër nëse dëshironi, thjesht mos harroni të azhurnoni të gjitha referencat me rrugën tuaj aktuale.

Hapi 2: Instalimi dhe konfigurimi i shoferit

Instalimi dhe konfigurimi i shoferit
Instalimi dhe konfigurimi i shoferit
Instalimi dhe konfigurimi i shoferit
Instalimi dhe konfigurimi i shoferit
Instalimi dhe konfigurimi i shoferit
Instalimi dhe konfigurimi i shoferit

Edhe nëse dritaret automatikisht zbulojnë FT2232 si parazgjedhje, drejtuesit e paracaktuar të Windows nuk janë të mjaftueshëm për të gjitha veçoritë e përparuara dhe është e nevojshme të shkarkoni dhe instaloni drejtuesin nga faqja FTDI

Kur është instaluar drejtuesi i duhur, duhet të shihni modulin tuaj FT2232 në menaxherin e pajisjes jo vetëm si 2 porte serike, por edhe si "konvertues serial USB A" dhe "konvertues serial USB B"

Hapi i dytë është ndryshimi i drejtuesit për një kanal të konvertuesit tonë. Shkarkoni mjetin zadig nga https://zadig.akeo.ie/. Nëse e kuptoj saktë, ky mjet lidh shoferin winUSB me pajisjen FTDI e cila mundëson komunikim të nivelit të ulët midis pajisjes openOCD dhe USB.

Në mjetin zadig, në menunë "Opsionet" kontrolloni "Trego të gjitha pajisjet", atëherë duhet të shihni përshtatësin tuaj në listën e pajisjeve në dispozicion. Zgjidhni "Dual RS232-HS (Ndërfaqja 0)" pastaj zgjidhni drejtuesin zëvendësues "WinUSB v6.1.xxxx" dhe klikoni përfundimisht në butonin e zëvendësimit të drejtuesit.

Kur lidhni përshtatësin tuaj me portë të ndryshme USB të kompjuterit tuaj, është e nevojshme të ndryshoni përsëri cilësimet e drejtuesit përmes mjetit zadig, përndryshe openOCD nuk do të gjejë përshtatësin tuaj.

Hapi 3: OpenOCD, Toolchain dhe Gdb

OpenOCD, Toolchain dhe Gdb
OpenOCD, Toolchain dhe Gdb

1. Open OCD është mjet për korrigjimin e qarkut, në njërën anë flet me çip në anën tjetër ofron server gdb ku mund të lidhet korrigjuesi (klienti). Shkarkoni openOCD për ESP32 nga https://github.com/espressif/openocd-esp32/releases dhe shpaketojeni atë në dosjen D: / devel / ESP32 / tools

2. redaktoni skedarët e konfigurimit të openOCD:

esp-wroom-32.cfg

Rruga e plotë për këtë skedar është:

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

Në këtë skedar mund të vendosni shpejtësinë e komunikimit duke ndryshuar parametrin "adapter_khz". Për shembull "adapter_khz 8000" do të thotë 8Mhz.

Si parazgjedhje është 20MHz dhe mund të jetë shumë e lartë nëse përdorni tela të gjata më të gjata ose dërrasë buke. Unë rekomandoj të filloni me 1Mhz dhe nëse gjithçka është në rregull, shkoni në shpejtësi më të lartë, për mua 8Mhz funksionon me besueshmëri.

minimodule.cfg

Rruga e plotë për këtë skedar është: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Nëse e kuptoj saktë, minimoduli i vërtetë është bordi i mbivlerësimit me një çmim të tepërt me FT 2232 të prodhuar nga FTDI dhe ndryshimi i vetëm midis minimodulit të vërtetë dhe modulit të lirë ose çipit të zhveshur të disponueshëm në treg është përshkrimi i paracaktuar USB. OCD e hapur po kërkon përshtatës jtag bazuar në përshkrimin e pajisjes, gjithashtu layout init duhet të rregullohet.

Moduli i lirë ka përshkrimin "Dual RS232-HS". Nëse nuk jeni të sigurt për përshkrimin e pajisjes tuaj, mund ta kontrolloni te menaxheri i pajisjes -> vetitë e pajisjes -> detajet e skedës -> vlera e pronës "Përshkrimi i pajisjes i raportuar me autobus"

Përmbajtja e minimodule.cfg duhet të duket si shembulli më poshtë, linjat fillojnë me # mund të fshihen.

ndërfaqe 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 0x0008i

esp32.cfg

Rruga e plotë për këtë skedar është:

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

Shtoni këto 2 rreshta në fund të esp32.cfg. Pa këtë modifikim, shtimi i pikave të frenimit nuk do të funksionojë.

#Forconi pikat e prishjes. Pasi të kemi një hartë të kujtesës, ne gjithashtu mund të lejojmë softuerin bps.gdb_breakpoint_override hard

3. Shkarkoni dhe instaloni xtensa-esp32-elf toolchain-ky zinxhir mjetesh përmban korrigjues të linjës së komandës (klient gdb) i cili është jetik për të pasur një debug të punës nga çdo IDE grafik. Zinxhiri i zhveshur i veglave mund të shkarkohet nga faqja espressif, seksioni "Konfigurimi alternativ"

Hapi 4: Instalimet dhe Testi i Parë

Instalimet dhe Testi i Parë
Instalimet dhe Testi i Parë
Instalimet dhe Testi i Parë
Instalimet dhe Testi i Parë

Lidhni modulin FT2322 me ESP. Unë rekomandoj të përdorni sa më shumë tela të shkurtër. Nëse jeni i ri në JTAG, mos harroni se TDI i përshtatësit do të shkojë në TDI të çipit, gjithashtu TDO i përshtatësit do të shkojë në TDO të çipit. Linjat e të dhënave JTAG NUK KALOJN si Rx/Tx në uart!

Për testin e mëposhtëm rekomandoj skicën e shembullit të ndezjes të ngarkimit ose ndonjë skicë tjetër e cila mund të tregojë kur CPU po funksionon ose jo duke ndezur LED ose duke bipuar ose shkruar në tastierën serike.

Filloni openOCD duke ndjekur komandën

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimodule.cfg -f bord /esp-wroom-32.cfg

Kjo do të fillojë openOCD dhe nëse gjithçka është në rregull, duhet të shihni në linjën e komandës dalja përmban rreshtat e mëposhtëm:

Info: shpejtësia e orës 8000 kHzInfo: JTAG trokitje e lehtë: esp32.cpu0 rubinet/pajisje e gjetur: 0x120034e5 (mfg: 0x272 (Tensilica), pjesë: 0x2003, ver: 0x1) Info: JTAG trokitje e lehtë: esp32.cpu1 trokitje e lehtë/pajisja e gjetur: 0x120034e5 (mfg: 0x272 (Tensilica), pjesë: 0x2003, ver: 0x1)

Gjithashtu procesi openocd do të dëgjojë në portin TCP 3333

Hapni terminalin e ri dhe filloni klientin e linjës komanduese gdb duke ndjekur komandën

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

Prisni një sekondë dhe kur terminali gdb do të jetë gati, shkruani komandat e mëposhtme një nga një

objektivi i telekomandës: ndalimi i rivendosjes së 3333 muajve vazhdon

komanda e parë hap lidhjen me serverin e debugut openocd, e dyta do të ndalojë ekzekutimin e programit në ESP dhe LED duhet të ndalojë së ndezuri, të vazhdojë të rivendosë ekzekutimin e programit dhe LED duhet të fillojë të pulsojë përsëri.

Hapi 5: Shtoni konfigurimin e korrigjimit në kodin Visual Studio

Shtoni konfigurimin e korrigjimit në kodin Visual Studio
Shtoni konfigurimin e korrigjimit në kodin Visual Studio

Unë supozoj se në atë pikë ju tashmë keni konfiguruar kodin vizual të studios dhe shtesën arduino në mënyrë korrekte dhe mund të verifikoni dhe ngarkoni skicën tuaj në tabelë. Nëse jo, ju lutemi kontrolloni disa udhëzime se si të konfiguroni kodin vizual të studios dhe arduino, për shembull në këtë faqe

Për të punuar me korrigjimin e nevojshëm, është e nevojshme të specifikoni dosjen e prodhimit të ndërtuar. Nën dosjen tuaj të skicës ekziston dosja (e fshehur).vscode, ku ndodhet skedari arduino.json. shtoni në këtë skedar rreshtin e mëposhtëm:

"output": "BuildOutput/"

ekzekutoni verifikoni ose ngarkoni dhe kontrolloni përsëri skedarin tuaj të skicimit, duhet të ketë dosje të re BuildOutput dhe brenda tij skedar me.elf zgjerim. skedari elf është jetik për korrigjimin.

Cilësimet e korrigjuesit janë në nisjen e skedarit.json. Krijoni këtë skedar me përmbajtjen e mëposhtme, ose mund ta kopjoni këtë skedar nga projekti shembull i bashkangjitur. Mos harroni të rregulloni rreshtin 26 dhe të përcaktoni rrugën e duhur për skedarin.elf të projektit tuaj.

{// Përdorni IntelliSense për të mësuar rreth atributeve të mundshme. // Rri pezull për të parë përshkrimet e atributeve ekzistuese. // Për më shumë informacion, vizitoni: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "konfigurimet": [{"name": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" start "," program ":" $ {file} "," cwd ":" $ {workspaceRoot}/BuildOutput/"," MIMode ":" gdb ", "targetArchitecture": "krah", "miDebuggerPath": "D: /devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe", "debugServerArgs": "", " customLaunchSetupCommands ": [{" text ":" target telekomandë: 3333 "}, {" text ":" mon reset reset stop "}, {// variant dinamik" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// variant statik //" tekst ":" file 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 \.]*: / hardware "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}

Si të filloni korrigjimin:

  1. Plotësoni dhe ngarkoni skicën tuaj në bord
  2. Filloni openOCD me parametra
  3. Vendosni pikat e frenimit në kodin ku dëshironi
  4. Pasi të keni vendosur të gjitha pikat e frenimit, sigurohuni që të keni hapur skedarin kryesor.ino të projektit tuaj. (ose rruga e kodit të fortë për në skedarin.elf në laun.json)
  5. Hap panelin e korrigjimit në kodin vs (Ctrl + Shift + D)
  6. Zgjidhni korrigjuesin "Arduino-GDB-openOCD", duhet të jetë i disponueshëm vetëm.
  7. Godit F5 për të filluar korrigjimin

Recommended: