Obsah:
- Krok 1: Softwarové požadavky
- Krok 2: Instalace a konfigurace ovladače
- Krok 3: OpenOCD, Toolchain a Gdb
- Krok 4: Zapojení a první test
- Krok 5: Přidejte konfiguraci ladění do kódu Visual Studio
Video: ESP32 - levné řešení pro in Circruit Debug: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
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
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
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
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
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:
- Vyrovnejte se a nahrajte svůj náčrt na palubu
- Spusťte openOCD s parametry
- Nastavte brzdné body v kódu, kam chcete
- 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)
- Otevřít ladicí panel v kódu vs (Ctrl + Shift + D)
- Vyberte ladicí program „Arduino-GDB-openOCD“, měl by být k dispozici pouze.
- Stisknutím F5 spusťte ladění
Doporučuje:
Arduino - Robot pro řešení bludiště (MicroMouse) Robot po zdi: 6 kroků (s obrázky)
Arduino | Maze Solving Robot (MicroMouse) Wall Následující robot: Vítejte, jsem Isaac a toto je můj první robot „Striker v1.0“. Tento robot byl navržen tak, aby vyřešil jednoduché bludiště. V soutěži jsme měli dvě bludiště a robot dokázal je identifikovat. Jakékoli další změny v bludišti mohou vyžadovat změnu v
SASSIE: Systém pro řešení trapného ticha a vylepšování interakcí: 5 kroků
SASSIE: Systém pro řešení trapného ticha a vylepšování interakcí: SASSIE je odpovědí na otázku, kterou jsme si všichni během trapného ticha v jednom bodě svého života položili: „Mluvím dál?“Nyní si nemusíte dělat starosti, protože SASSIE je speciálně navržena tak, aby rozpoznala trapné ticho
Řešení IOT pro sdílení kola: 6 kroků
Řešení IOT pro sdílení kola: Sdílení kola je v Číně v dnešní době velmi populární. Na trhu je více než 10 značek sdílených kol a “ mobike ” je nejslavnější, má více než 100 milionů registrovaných uživatelů a rozšířil se do dalších měst
Řešení pro žádné parkovací zóny: 5 kroků
Řešení pro zóny bez parkování: Tento projekt je výsledkem inspirace, kterou můj tým získal z novinového článku. Článek hovořil o tom, že lidé parkují svá vozidla na parkovacích zónách. To se stalo velkým problémem, který má za následek dopravní zácpy a nepříjemnosti pro ostatní
Intuitivní robot pro řešení bludiště: 3 kroky
Intuitivní robot pro řešení bludiště: V tomto Instructable se naučíte, jak vytvořit robota pro řešení bludišť, který řeší bludiště nakreslená lidmi. Zatímco většina robotů řeší první druh nakreslených bludišť (musíte se řídit čarami, jsou to cesty), normální lidé mají tendenci kreslit druhý druh bludiště