Obsah:

ESP32 - levné řešení pro in Circruit Debug: 5 kroků
ESP32 - levné řešení pro in Circruit Debug: 5 kroků

Video: ESP32 - levné řešení pro in Circruit Debug: 5 kroků

Video: ESP32 - levné řešení pro in Circruit Debug: 5 kroků
Video: Concept of LoRa Transmitter, BME280 Sensor and WiFi Webserver based on Arduino ESP32 (EP07) 2024, Červenec
Anonim
ESP32 - levné řešení pro ladění Circruit
ESP32 - levné řešení pro ladění Circruit

Dobrý den, v tomto návodu je popsáno, jak nastavit levný adaptér JTAG na základě čipu FTDI 2232HL s vizuálním kódem a doplňkem arduino.

- Modul FTDI 2232HL s konektorem USB od 8 $ na ebay a není vyžadován žádný placený software. Toto je skvělé řešení pro fandy, kteří nechtějí utratit 50 $+ za profesionální JTAG adaptér.

- Tento adaptér by mohl být použit pro ladění jiných platforem jako ESP8266, ARM, AVR a mnoha dalších. Některá konfigurace závisí na cílové platformě, tato instrukce se týká pouze nastavení pro ESP32.

- Pokud již vlastníte nějaký adaptér JTAG, můžete jej použít, pokud je podporován openOCD, stačí spustit openocd s jiným konfiguračním souborem podle typu vašeho adaptéru jtag.

- platform.io vám může nastavení usnadnit, ale ladění je podporováno pouze v placené profesionální verzi.

- Funguje s většinou modulů ESP32. (například levné wemos lolin 32)

- tento adaptér jtag by měl fungovat i s linuxem, ale osobně jsem to netestoval.

Krok 1: Softwarové požadavky

Arduino IDE verze 1.8 nebo novější. Verze Windows Store není podporována. Musíte použít klasickou verzi instalačního programu, kterou lze stáhnout z oficiální stránky Arduino

Kód Microsoft Visual Studio

Tyto doplňky pro kód vizuálního studia jsou povinné

  • Arduino
  • Nativní ladění

Doporučuji také nainstalovat tento doplněk, který umožňuje inteligence pro C/C ++

C/C ++

V této příručce použiji 2 pracovní složky:

D: / devel / ESP32 / tools / - zde jsem umístil všechny nástroje

C: / Users / xxxxx / Documents / Arduino / YourProject / - toto je složka s náčrtem

pokud chcete, můžete své soubory umístit kamkoli jinam, jen prosím nezapomeňte aktualizovat všechny odkazy svou skutečnou cestou.

Krok 2: Instalace a konfigurace ovladače

Instalace a konfigurace ovladače
Instalace a konfigurace ovladače
Instalace a konfigurace ovladače
Instalace a konfigurace ovladače
Instalace a konfigurace ovladače
Instalace a konfigurace ovladače

I když systém Windows automaticky detekuje FT2232 ve výchozím nastavení, výchozí ovladače systému Windows nestačí pro všechny pokročilé funkce a je nutné stáhnout a nainstalovat ovladač z webu FTDI

Když je nainstalován správný ovladač, měli byste vidět svůj modul FT2232 ve správci zařízení nejen jako 2 sériové porty, ale také jako „USB sériový převodník A“a „USB sériový převodník B“

Druhým krokem je změna ovladače pro jeden kanál našeho převaděče. Stáhněte si nástroj zadig z https://zadig.akeo.ie/. Pokud tomu správně rozumím, tento nástroj propojuje ovladač winUSB se zařízením FTDI, což umožňuje nízkou úroveň komunikace mezi zařízením openOCD a USB.

V nástroji zadig v nabídce „Možnosti“zaškrtněte „Zobrazit všechna zařízení“, pak byste měli vidět váš adaptér v seznamu dostupných zařízení. Vyberte „Dual RS232-HS (Interface 0)“, poté vyberte náhradní ovladač „WinUSB v6.1.xxxx“a nakonec klikněte na tlačítko nahradit ovladač.

Když připojíte adaptér k jinému portu USB počítače, je nutné znovu změnit nastavení ovladače pomocí nástroje zadig, jinak openOCD váš adaptér nenalezne.

Krok 3: OpenOCD, Toolchain a Gdb

OpenOCD, Toolchain a Gdb
OpenOCD, Toolchain a Gdb

1. Otevřený OCD je nástroj pro ladění circruitů, na jedné straně mluví s čipem, na druhé straně poskytuje server gdb, ke kterému se může připojit debugger (klient). Stáhněte si openOCD pro ESP32 z https://github.com/espressif/openocd-esp32/releases a rozbalte jej do složky D: / devel / ESP32 / tools

2. upravit konfigurační soubory openOCD:

esp-wroom-32.cfg

Úplná cesta k tomuto souboru je:

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

V tomto souboru můžete nastavit rychlost komunikace změnou parametru "adapter_khz". Například „adapter_khz 8000“znamená 8 MHz.

Výchozí hodnota je 20 MHz a může být příliš vysoká, pokud používáte delší propojovací vodiče nebo propojovací pole. Doporučuji začít na 1Mhz a pokud je vše v pořádku, přejděte na vyšší rychlost, na mě 8Mhz funguje spolehlivě.

minimodule.cfg

Úplná cesta k tomuto souboru je: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Pokud tomu dobře rozumím, originální minimodule je předražená brzdová deska s FT 2232 vyráběná společností FTDI a jediným rozdílem mezi skutečným minimodulem a levným modulem nebo holým čipem dostupným na trhu je výchozí popis USB. open OCD hledá jtag adaptér na základě popisu zařízení, také je třeba upravit init layout.

Levné moduly mají popis "Dual RS232-HS". Pokud si nejste jisti popisem svého zařízení, můžete jej zkontrolovat ve správci zařízení -> vlastnosti zařízení -> detaily karty -> hodnota vlastnosti „Popis zařízení hlášeného sběrnicí“

Obsah minimodule.cfg by měl vypadat jako níže uvedený příklad, řádky začínající # lze odstranit.

rozhraní 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 ftal_layout

esp32.cfg

Úplná cesta k tomuto souboru je:

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

Připojte následující 2 řádky na konec esp32.cfg. Bez této úpravy nebude přidání brzdových bodů fungovat.

#Vynutit hraniční body hw. Jakmile máme mapu paměti, můžeme také povolit software bps.gdb_breakpoint_override

3. Stáhněte a nainstalujte řetězec nástrojů xtensa-esp32-elf-tento řetězec nástrojů obsahuje debugger příkazového řádku (klient gdb), který je nezbytný pro funkční ladění z jakéhokoli grafického IDE. Bare toolchain lze stáhnout z webu espressif, sekce „Alternativní nastavení“https://docs.espressif.com/projects/esp-idf/en/latest/get-started/windows-setup-scratch.html

Krok 4: Zapojení a první test

Zapojení a první test
Zapojení a první test
Zapojení a první test
Zapojení a první test

Propojte modul FT2322 s ESP. Doporučuji použít co nejkratší vodiče. Pokud jste v JTAG noví, nezapomeňte, že TDI adaptéru přejde na TDI čipu, také TDO adaptéru přejde na TDO čipu. Datové řádky JTAG NEJSOU zkříženy jako Rx/Tx na uart!

Pro následující test doporučuji nahrát skicu s ukázkou mrknutí nebo jinou skicu, která může indikovat, zda CPU běží nebo ne, blikáním LED nebo pípáním nebo zápisem do sériové konzoly.

Otevřete openOCD následujícím příkazem

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

Tím se spustí openOCD a pokud je vše v pořádku, měli byste vidět, že výstup příkazového řádku obsahuje následující řádky:

Info: takt 8000 kHzInfo: JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info: JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), část: 0x2003, ver: 0x1)

Také proces openocd bude poslouchat na portu TCP 3333

Otevřete nový terminál a spusťte příkazového řádku klienta gdb podle příkazu

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

Počkejte chvíli, a až bude terminál gdb připraven, napište postupně následující příkazy

cíl vzdáleně: 3333mon reset zastavit pokračovat

první příkaz otevře připojení k serveru ladění openocd, druhý zastaví provádění programu na ESP a LED by měla přestat blikat, pokračovat v obnově provádění programu a LED dioda by měla začít znovu blikat.

Krok 5: Přidejte konfiguraci ladění do kódu Visual Studio

Přidejte konfiguraci ladění do kódu Visual Studio
Přidejte konfiguraci ladění do kódu Visual Studio

V tu chvíli předpokládám, že jste již správně nakonfigurovali kód vizuálního studia a doplněk arduino a můžete svůj náčrt ověřit a nahrát na tabuli. Pokud ne, podívejte se prosím na nějaký návod, jak nakonfigurovat kód Visual Studio a arduino, například na této stránce

Aby ladění fungovalo, je nutné zadat výstupní složku sestavení. Pod vaší složkou skici je (skrytá) složka.vscode, kde je soubor arduino.json. přidejte do tohoto souboru následující řádek:

"output": "BuildOutput/"

spusťte ověření nebo nahrání a znovu zkontrolujte složku skici, měla by existovat nová složka BuildOutput a v ní soubor s příponou.elf. soubor elf je nezbytný pro ladění.

Nastavení ladicího programu je v souboru launch.json. Vytvořte tento soubor s následujícím obsahem, nebo jej můžete zkopírovat z připojeného ukázkového projektu. Nezapomeňte upravit řádek 26 a definovat správnou cestu k souboru.elf vašeho projektu.

{// Pomocí IntelliSense se dozvíte o možných atributech. // Najetím myší zobrazíte popisy stávajících atributů. // Další informace naleznete na adrese: 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 "}, {// dynamická varianta" text ":" soubor c:/Uživatelé/xxxxx/Dokumenty/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statická varianta //" text ":" soubor c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Informace \: [w / d \.]*: / hardware "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}

Jak začít s laděním:

  1. Vyrovnejte se a nahrajte svůj náčrt na palubu
  2. Spusťte openOCD s parametry
  3. Nastavte brzdné body v kódu, kam chcete
  4. Po nastavení všech brzdných bodů se ujistěte, že jste otevřeli hlavní soubor.ino svého projektu. (nebo cesta k souboru.elf v pevném kódu v souboru launch.json)
  5. Otevřít ladicí panel v kódu vs (Ctrl + Shift + D)
  6. Vyberte ladicí program „Arduino-GDB-openOCD“, měl by být k dispozici pouze.
  7. Stisknutím F5 spusťte ladění

Doporučuje: