Innholdsfortegnelse:

ESP32 - Billig løsning for in Circruit Debug: 5 trinn
ESP32 - Billig løsning for in Circruit Debug: 5 trinn

Video: ESP32 - Billig løsning for in Circruit Debug: 5 trinn

Video: ESP32 - Billig løsning for in Circruit Debug: 5 trinn
Video: #139 Is there a simple and cheap way to protect your super caps? How? 2024, Juli
Anonim
ESP32 - Billig løsning for in Circruit Debug
ESP32 - Billig løsning for in Circruit Debug

Hei, i denne instruktøren er beskrevet hvordan du setter opp en billig JTAG -adapter basert på FTDI 2232HL -brikke, med visuell kode og arduino -tillegg.

- FTDI 2232HL -modul med USB -kontakt fra 8 $ på ebay og ingen betalt programvare er nødvendig. Dette er en flott løsning for amatører som ikke vil bruke 50 $+ på profesjonell JTAG -adapter.

- Denne adapteren kan brukes til feilsøking av andre plattformer som ESP8266, ARM, AVR og mange andre. Noen konfigurasjoner avhenger av målplattformen, denne instruksjonen dekker bare oppsett for ESP32.

- Hvis du allerede eier en JTAG -adapter, kan du bruke den når den støttes av openOCD, bare start openocd med en annen konfigurasjonsfil basert på typen jtag -adapter.

- platform.io kan gjøre oppsettet enklere for deg, men feilsøking støttes bare i betalt profesjonell versjon.

- Fungerer med de fleste ESP32 -moduler. (for eksempel billig wemos lolin 32)

- Denne jtag -adapteren skal fungere med linux også, men jeg personlig testet den ikke.

Trinn 1: Programvareprosesser

Arduino IDE versjon 1.8 eller nyere. Windows butikkversjon støttes ikke. Du må bruke den klassiske installasjonsversjonen som kan lastes ned fra den offisielle Arduino -siden

Microsoft visual studio -kode

Disse tilleggene for visuell studiokode er obligatoriske

  • Arduino
  • Native debug

Jeg anbefaler også å installere dette tillegget som muliggjør intelisense for C/C ++

C/C ++

I denne håndboken vil jeg bruke 2 arbeidsmapper:

D: / devel / ESP32 / tools / - her har jeg plassert alle verktøyene

C: / Users / xxxxx / Documents / Arduino / YourProject / - dette er en mappe med skisse

Du kan plassere filene dine andre steder hvis du vil, bare ikke glem å oppdatere alle referanser med den faktiske banen.

Trinn 2: Installering og konfigurering av driver

Driverinstallasjon og konfigurasjon
Driverinstallasjon og konfigurasjon
Driverinstallasjon og konfigurasjon
Driverinstallasjon og konfigurasjon
Driverinstallasjon og konfigurasjon
Driverinstallasjon og konfigurasjon

Selv om Windows automatisk oppdager FT2232 som standard, er Windows standarddrivere ikke nok for alle forhåndsfunksjoner, og det er nødvendig å laste ned og installere driveren fra FTDI -nettstedet

Når riktig driver er installert, bør du se FT2232 -modulen i enhetsbehandling ikke bare som 2 serielle porter, men også som "USB seriell omformer A" og "USB seriell omformer B"

Det andre trinnet er å bytte driver for en kanal i vår omformer. Last ned zadig -verktøyet fra https://zadig.akeo.ie/. Hvis jeg forstår riktig, kobler dette verktøyet winUSB -driver til FTDI -enhet som muliggjør kommunikasjon på lavt nivå mellom openOCD og USB -enhet.

I zadig -verktøyet, i menyen "Alternativer", sjekk "Vis alle enheter", så bør du se adapteren din i listen over tilgjengelige enheter. Velg "Dual RS232-HS (grensesnitt 0)", velg deretter erstatningsdriveren "WinUSB v6.1.xxxx" og klikk deretter på erstatt driver-knappen.

Når du kobler adapteren til en annen USB -port på datamaskinen din, er det nødvendig å endre driverinnstillinger via zadig -verktøyet igjen, ellers vil openOCD ikke finne adapteren.

Trinn 3: OpenOCD, Toolchain og Gdb

OpenOCD, Toolchain og Gdb
OpenOCD, Toolchain og Gdb

1. Åpen OCD er verktøy for debugging i kringkast, på den ene siden snakker den med chip på den andre siden, den gir gdb -server der debugger (klient) kan koble seg til. Last ned openOCD for ESP32 fra https://github.com/espressif/openocd-esp32/releases og pakk den ut til mappe D: / devel / ESP32 / tools

2. rediger openOCD -konfigurasjonsfiler:

esp-wroom-32.cfg

Hele banen til denne filen er:

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

I denne filen kan du angi kommunikasjonshastighet ved å endre parameteren "adapter_khz". For eksempel betyr "adapter_khz 8000" 8Mhz.

Standard er 20MHz, og det kan være for høyt hvis du bruker lengre ledertråder eller brødbrett. Jeg anbefaler å starte på 1Mhz, og hvis alt er OK, gå til høyere hastighet, for meg fungerer 8Mhz pålitelig.

minimodule.cfg

Hele banen til denne filen er: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Hvis jeg forstår riktig, er ekte minimodule overpriset bremsebrett med FT 2232 produsert av FTDI, og eneste forskjell mellom ekte minimodule og billig modul eller bare chip tilgjengelig på markedet er standard USB -beskrivelse. åpen OCD leter etter jtag adapter basert på enhetsbeskrivelse, også layout init må justeres.

Billig modul har beskrivelse "Dual RS232-HS". Hvis du ikke er sikker på beskrivelsen av enheten din, kan du sjekke den i enhetsbehandling -> enhetsegenskaper -> kategoridetaljer -> verdi for egenskapen "Buss rapportert enhetsbeskrivelse"

Innholdet i minimodule.cfg skal se ut som eksempelet nedenfor, linjer som begynner med # kan slettes.

grensesnitt 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_lay

esp32.cfg

Hele banen til denne filen er:

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

Legg til følgende to linjer til slutten av esp32.cfg. Uten denne endringen vil det ikke fungere å legge til bremsepunkter.

#Force hw breakpoints. Når vi har et minnekart, kan vi også tillate programvare bps.gdb_breakpoint_override hardt

3. Last ned og installer xtensa-esp32-elf verktøykjede-denne verktøykjeden inneholder kommandolinjefeilsøkingsprogram (gdb-klient) som er avgjørende for å ha fungerende feilsøking fra en grafisk IDE. Bare verktøykjede kan lastes ned fra espressif-siden, delen "Alternativt oppsett"

Trinn 4: Kabling og første test

Kabling og første test
Kabling og første test
Kabling og første test
Kabling og første test

Koble FT2322 -modulen til ESP. Jeg anbefaler å bruke så korte ledninger som mulig. Hvis du ikke er ny på JTAG, må du ikke glemme at TDI -adapteren går til TDI -brikken, og TDO -adapteren går til TDO -brikken. JTAG -datalinjer krysses IKKE som Rx/Tx på uart!

For følgende test anbefaler jeg opplasting av blinkeksempler eller annen skisse som kan indikere når CPU kjører eller ikke, ved å blinke LED eller pipe eller skrive til seriekonsoll.

Start openOCD ved å følge kommandoen

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 board /esp-wroom-32.cfg

Dette vil starte openOCD, og hvis alt er i orden, bør du se på kommandolinjens utgang følgende linjer:

Info: klokkehastighet 8000 kHz Informasjon: JTAG tapp: esp32.cpu0 tapp/enhet funnet: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1) Info: JTAG tapp: esp32.cpu1 tapp/enhet funnet: 0x120034e5 (mfg: 0x272 (Tensilica), del: 0x2003, ver: 0x1)

Openocd -prosessen vil også lytte til TCP -port 3333

Åpne ny terminal og start kommandolinjens gdb -klient ved å følge kommandoen

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

Vent litt, og når gdb -terminalen er klar, skriver du følgende kommandoer en etter en

målfjernkontroll: 3333mån tilbakestilling stopper videre

første kommando åpner tilkobling til openocd feilsøkingsserver, andre stopper programkjøring på ESP og LED skal slutte å blinke, fortsette gjenoppretting av programkjøring og LED skal begynne å blinke igjen.

Trinn 5: Legg til feilsøkingskonfigurasjon i Visual Studio Code

Legg til feilsøkingskonfigurasjon i Visual Studio Code
Legg til feilsøkingskonfigurasjon i Visual Studio Code

Jeg antar at på det tidspunktet har du allerede konfigurert visuell studiokode og arduino addon riktig, og du kan bekrefte og laste opp skissen din til brettet. Hvis ikke, vennligst sjekk instruksjonene for hvordan du konfigurerer visuell studiokode og arduino, for eksempel på denne siden

For å få feilsøking til å fungere, er det nødvendig å spesifisere build -utdatamappen. Under skisse -mappen din er det (skjult) mappen.vscode, hvor er filen arduino.json. legg til denne filen følgende linje:

"output": "BuildOutput/"

kjør verifiser eller last opp og sjekk skisse -mappen din igjen, det bør være en ny BuildOutput -mappe og inne i den med.elf extensition. elf -fil er avgjørende for feilsøking.

Feilsøkingsinnstillinger er i filstart.json. Lag denne filen med følgende innhold, eller du kan kopiere denne filen fra vedlagt eksempelprosjekt. Ikke glem juster linje 26 og definer riktig vei til prosjektet.elf -fil.

{// Bruk IntelliSense for å lære om mulige attributter. // Hold markøren for å se beskrivelser av eksisterende attributter. // For mer informasjon, besøk: https://go.microsoft.com/fwlink/?linkid=830387 "versjon": "0.2.0", "konfigurasjoner": [{"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 "// statisk variant //" text ":" fil 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 ": }]}

Slik starter du feilsøking:

  1. Fullfør og last opp skissen din til brett
  2. Start openOCD med parametere
  3. Sett bremsepunkter i koden der du vil
  4. Etter at du har angitt alle bremsepunkter, må du kontrollere at du har åpnet prosjektets hoved.ino -fil. (eller hardcode -banen til.elf -filen i launch.json)
  5. Åpne feilsøkingspanel i vs kode (Ctrl + Shift + D)
  6. Velg "Arduino-GDB-openOCD" debugger, skal bare være tilgjengelig.
  7. Trykk på F5 for å starte feilsøking

Anbefalt: