INHOUDSOPGAWE:

ESP32 - Goedkoop oplossing vir in Debit -ontfouting in Circruit: 5 stappe
ESP32 - Goedkoop oplossing vir in Debit -ontfouting in Circruit: 5 stappe

Video: ESP32 - Goedkoop oplossing vir in Debit -ontfouting in Circruit: 5 stappe

Video: ESP32 - Goedkoop oplossing vir in Debit -ontfouting in Circruit: 5 stappe
Video: Zigbee Ethernet шлюз Zigstar Lilyzig с поддержкой Power over Ethernet, ставим второй zigbee2mqtt 2024, November
Anonim
ESP32 - Goedkoop oplossing vir in Circruit Debug
ESP32 - Goedkoop oplossing vir in Circruit Debug

Hallo, in hierdie instruksies word beskryf hoe u 'n goedkoop JTAG -adapter kan opstel op grond van FTDI 2232HL -chip, met visuele kode en arduino -addon.

- FTDI 2232HL -module met USB -aansluiting vanaf 8 $ op eBay en geen betaalde sagteware word benodig nie. Dit is 'n uitstekende oplossing vir stokperdjies wat nie 50 $+ wil bestee aan 'n professionele JTAG -adapter nie.

- Hierdie adapter kan gebruik word vir die ontfouting van ander platforms soos ESP8266, ARM, AVR en vele ander. Sommige konfigurasies hang af van die teikenplatform; hierdie instruksie dek slegs die opstelling vir ESP32.

- As u reeds 'n JTAG -adapter besit, kan u dit gebruik as dit deur openOCD ondersteun word; begin net openocd met 'n ander konfigurasielêer gebaseer op die tipe van u jtag -adapter.

- platform.io kan die opstelling vir u makliker maak, maar ontfouting word slegs ondersteun in 'n betaalde professionele weergawe.

- Werk met die meeste ESP32 -modules. (byvoorbeeld goedkoop wemos lolin 32)

- hierdie jtag -adapter behoort ook met Linux te werk, maar ek het dit persoonlik nie getoets nie.

Stap 1: Sagteware -vereistes

Arduino IDE weergawe 1.8 of nuwer. Windows -winkelweergawe word nie ondersteun nie. U moet die klassieke installeringsweergawe gebruik, wat afgelaai kan word vanaf die amptelike Arduino -bladsy

Microsoft visuele studio -kode

Hierdie byvoegings vir visuele studio -kode is verpligtend

  • Arduino
  • Inheemse ontfouting

Ek beveel ook aan om hierdie addon te installeer wat intelisense vir C/C ++ moontlik maak

C/C ++

In hierdie handleiding sal ek 2 werkende vouers gebruik:

D: / devel / ESP32 / tools / - hier het ek al die gereedskap geplaas

C: / Users / xxxxx / Documents / Arduino / YourProject / - dit is 'n gids met 'n skets

U kan u lêers op enige ander plek plaas, as u wil, moet u nie vergeet om alle verwysings by te werk met u werklike pad nie.

Stap 2: Installeer en konfigurasie van die bestuurder

Bestuurder installering en konfigurasie
Bestuurder installering en konfigurasie
Bestuurder installering en konfigurasie
Bestuurder installering en konfigurasie
Bestuurder installering en konfigurasie
Bestuurder installering en konfigurasie

Selfs as Windows standaard FT2232 outomaties opspoor, is Windows se standaardbestuurders nie voldoende vir alle vooraffunksies nie, en is dit nodig om die bestuurder af te laai en te installeer vanaf die FTDI -webwerf

As die regte bestuurder geïnstalleer is, moet u FT2232 -module in apparaatbestuurder nie net as 2 seriële poorte nie, maar ook as 'USB -reeksomskakelaar A' en 'USB -omskakelaar B'

Tweede stap is die verandering van bestuurder vir een kanaal van ons omskakelaar. Laai zadig -instrument af van https://zadig.akeo.ie/. As ek dit reg verstaan, koppel hierdie hulpmiddel die WinUSB -bestuurder aan die FTDI -toestel, wat 'n lae kommunikasie tussen openOCD en USB -toestelle moontlik maak.

In die zadig -instrument, in die kieslys "Opsies", merk "Wys alle toestelle", dan moet u u adapter in die lys met beskikbare toestelle sien. Kies "Dubbele RS232-HS (koppelvlak 0)" en kies dan die vervangende bestuurder "WinUSB v6.1.xxxx" en klik uiteindelik op die knoppie vervang bestuurder.

As u u adapter aan 'n ander USB -poort van u rekenaar koppel, is dit nodig om die bestuurderinstellings weer via zadig -instrument te verander; anders sal openOCD u adapter nie vind nie.

Stap 3: OpenOCD, Toolchain en Gdb

OpenOCD, Toolchain en Gdb
OpenOCD, Toolchain en Gdb

1. Open OCD is 'n hulpmiddel vir die ontfouting in die kring, aan die een kant praat dit met 'n chip aan die ander kant, en bied 'n gdb -bediener waar debugger (kliënt) kan koppel. Laai openOCD vir ESP32 af van https://github.com/espressif/openocd-esp32/releases en pak dit uit na vouer D: / devel / ESP32 / tools

2. wysig openOCD -konfigurasielêers:

esp-wroom-32.cfg

Die volledige pad na hierdie lêer is:

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

In hierdie lêer kan u die kommunikasiesnelheid stel deur parameter "adapter_khz" te verander. Byvoorbeeld, "adapter_khz 8000" beteken 8Mhz.

Die standaard is 20MHz en dit kan te hoog wees as u langer draaddrade of broodbord gebruik. Ek beveel aan om by 1Mhz te begin, en as alles in orde is, gaan na 'n hoër spoed, want vir my werk 8Mhz betroubaar.

minimodule.cfg

Die volledige pad na hierdie lêer is: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

As ek reg verstaan, is die ware minimodule 'n te duur remblok met FT 2232 wat deur FTDI vervaardig word, en die enigste verskil tussen 'n ware minimodule en 'n goedkoop module of 'n chip wat op die mark beskikbaar is, is die standaard USB -beskrywing. oop OCD is op soek na jtag -adapter op grond van die apparaatbeskrywing, en die uitleg moet eers aangepas word.

Goedkoop module het 'n beskrywing "Dual RS232-HS". As u nie seker is oor die beskrywing van u toestel nie, kan u dit in toestelbestuurder -> toesteleienskappe -> oortjiebesonderhede -> waarde van die eiendom "Busbeskrywing van toestelbeskrywing" nagaan.

Inhoud van minimodule.cfg moet soos die voorbeeld hieronder lyk; reëls wat begin met # kan uitgevee word.

koppelvlak 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 ftdat_layout

esp32.cfg

Die volledige pad na hierdie lêer is:

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

Voeg die volgende 2 reëls by aan die einde van esp32.cfg. Sonder hierdie wysiging werk die byvoeging van rempunte nie.

#Force hw breekpunte. Sodra ons 'n geheuekaart het, kan ons ook sagteware bps.gdb_breakpoint_override hard toelaat

3. Laai en installeer xtensa-esp32-elf toolchain-hierdie toolchain bevat opdragreël-ontfouter (gdb-kliënt), wat noodsaaklik is vir werkende ontfouting vanaf enige grafiese IDE. Bare toolchain kan afgelaai word vanaf die espressif-webwerf, afdeling "Alternatiewe opstelling"

Stap 4: Bedrading en eerste toets

Bedrading en eerste toets
Bedrading en eerste toets
Bedrading en eerste toets
Bedrading en eerste toets

Koppel FT2322 -module met ESP. Ek beveel aan om so kort as moontlik drade te gebruik. As u nie nuut is by JTAG nie, moet u nie vergeet dat die TDI van die adapter na die TDI van die chip gaan nie, maar ook die TDO van die adapter na die TDO van die chip. JTAG -datalyne word NIE gekruis soos Rx/Tx op uart nie!

Vir die volgende toets beveel ek aan dat u 'n voorbeeldskets of 'n ander skets oplaai, wat kan aandui of die SVE werk, al dan nie deur 'n LED te knipper, of 'n piep te skryf of na die seriële konsole te skryf.

Begin openOCD deur die opdrag te volg

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

Dit begin openOCD en as alles in orde is, moet u sien dat die opdragreël die volgende reëls bevat:

Inligting: kloksnelheid 8000 kHz Inligting: JTAG -kraan: esp32.cpu0 kraan/toestel gevind: 0x120034e5 (mfg: 0x272 (Tensilica), deel: 0x2003, ver: 0x1) Info: JTAG -kraan: esp32.cpu1 kraan/toestel gevind: 0x120034e5 (mfg: 0x272 (Tensilica), deel: 0x2003, ver: 0x1)

Die openocd -proses luister ook na TCP -poort 3333

Maak 'n nuwe terminale oop en begin die opdragreël gdb -kliënt deur die volgende opdrag te volg

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

Wag 'n oomblik en as die gdb -terminale gereed is, skryf die opdragte een vir een

doelafstand: afstand van 3333 maande tot stilstand

die eerste opdrag maak die verbinding met die openocd -ontfoutingsbediener oop, die tweede stop die uitvoering van die program op ESP en die LED moet ophou knip, die programuitvoering herstel en die LED moet weer begin knip.

Stap 5: Voeg ontfoutingskonfigurasie by Visual Studio -kode

Voeg ontfoutingskonfigurasie by Visual Studio -kode
Voeg ontfoutingskonfigurasie by Visual Studio -kode

Ek neem aan dat u reeds die visuele studio -kode en die arduino -addon korrek opgestel het, en u kan u skets op die bord verifieer en oplaai. Indien nie, lees dan die instruksies oor hoe om visuele ateljeekode en arduino op te stel, byvoorbeeld op hierdie bladsy

Om die ontfouting te laat werk, is dit nodig om die bou -uitvoermap te spesifiseer. Onder u sketsmap is daar (versteekte) gids.vscode, waar lêer arduino.json. voeg die volgende reël by hierdie lêer:

"output": "BuildOutput/"

hardloop verifieer of laai op en kyk weer na u sketsgids; daar behoort 'n nuwe BuildOutput -lêergids te wees en 'n lêer met.elf -uitbreiding. elf -lêer is noodsaaklik vir ontfouting.

Ontfouterinstellings is in lêer launch.json. Skep hierdie lêer met die volgende inhoud, of u kan hierdie lêer kopieer van die aangehegte voorbeeldprojek. Moenie vergeet nie, pas reël 26 aan en definieer die korrekte pad na die projek self -lêer.

{// Gebruik IntelliSense om meer te wete te kom oor moontlike eienskappe. // Beweeg die muis om beskrywings van bestaande eienskappe te sien. // Vir meer inligting, besoek: 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 "}, {// dynamic variant" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statiese variant //" text ":" lêer 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 ": }]}}

Hoe om te begin ontfout:

  1. Voltooi en laai u skets op die bord
  2. Begin openOCD met parameters
  3. Stel die rempunte in die kode waar u wil
  4. Nadat u alle rempunte ingestel het, moet u die hoof -.ino -lêer van u projek oopmaak. (of hardcode pad na.elf lêer in launch.json)
  5. Maak ontfoutpaneel oop in vs kode (Ctrl + Shift + D)
  6. Kies 'Arduino-GDB-openOCD' ontfouter, moet slegs beskikbaar wees.
  7. Druk F5 om te begin met ontfouting

Aanbeveel: