INHOUDSOPGAWE:
- Stap 1: Sagteware -vereistes
- Stap 2: Installeer en konfigurasie van die bestuurder
- Stap 3: OpenOCD, Toolchain en Gdb
- Stap 4: Bedrading en eerste toets
- Stap 5: Voeg ontfoutingskonfigurasie by Visual Studio -kode
Video: ESP32 - Goedkoop oplossing vir in Debit -ontfouting in Circruit: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
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
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
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
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
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:
- Voltooi en laai u skets op die bord
- Begin openOCD met parameters
- Stel die rempunte in die kode waar u wil
- 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)
- Maak ontfoutpaneel oop in vs kode (Ctrl + Shift + D)
- Kies 'Arduino-GDB-openOCD' ontfouter, moet slegs beskikbaar wees.
- Druk F5 om te begin met ontfouting
Aanbeveel:
Oplossing vir ligte besoedeling - Artemis: 14 stappe
Oplossing vir ligbesoedeling - Artemis: Ligbesoedeling is iets wat ons almal regoor die wêreld raak. Sedert die gloeilamp uitgevind is, het lig baie meer gewild geword en is dit spesifiek in groot stede soos New York en Chicago gebruik. Al hierdie lig kan beïnvloed
Moeilike oplossing vir 'n stukkende waaier (die swak manier): 5 stappe
Tricky Fix a Broken Fan (the Poor Way): Hallo almal, hier is hoe ek 'n stukkende waaier wat ek gekry het op so 'n moeilike, maar doeltreffende manier reggemaak het! Ek hoop dat u dit sal waardeer, en, indien wel, stem my in 'n wedstryd! Dankie jy
SASSIE: die stelsel vir ongemaklike stilte -oplossing en interaksieverbeteraar: 5 stappe
SASSIE: die oplossing vir oplossing vir ongemaklike stilte en verbetering van interaksie: SASSIE is die antwoord op die vraag wat ons almal op 'n stadium in ons lewens aan onsself gestel het tydens 'n ongemaklike stilte: "Praat ek volgende?" Nou, u hoef nie bekommerd te wees nie, want SASSIE is spesifiek ontwerp om 'n ongemaklike stilte te herken
IOT -oplossing vir die deelfiets: 6 stappe
IOT -oplossing vir die deelfiets: Die deelfiets is deesdae baie gewild in China. Daar is meer as 10 handelsmerke om fiets te deel op die mark, en die “ mobike ” is die bekendste, dit het meer as 100 miljoen geregistreerde gebruikers en het na ander stede versprei
Vingerafdruksensor gebruik vir tydbywoning in kombinasie met XAMP -oplossing: 6 stappe (met foto's)
Vingerafdruksensor gebruik vir tydbywoning in kombinasie met XAMP -oplossing: Vir 'n skoolprojek het ons 'n oplossing gesoek om die bywoning van studente op te spoor. Baie van ons studente kom laat in. Dit is 'n vervelige taak om hul teenwoordigheid na te gaan. Aan die ander kant is daar baie bespreking omdat studente dikwels sal sê