Tartalomjegyzék:

ESP32 - Olcsó megoldás Circruit hibakereséshez: 5 lépés
ESP32 - Olcsó megoldás Circruit hibakereséshez: 5 lépés

Videó: ESP32 - Olcsó megoldás Circruit hibakereséshez: 5 lépés

Videó: ESP32 - Olcsó megoldás Circruit hibakereséshez: 5 lépés
Videó: Arduino Servo Control: How to Make a Laser Turret with XOD 2024, November
Anonim
ESP32 - Olcsó megoldás Circruit hibakereséshez
ESP32 - Olcsó megoldás Circruit hibakereséshez

Helló! Ebben az oktatóanyagban leírjuk, hogyan állítsunk be olcsó JTAG adaptert FTDI 2232HL chipen, vizuális kóddal és arduino kiegészítővel.

- FTDI 2232HL modul USB csatlakozóval, 8 dollártól az ebay -en, és nincs szükség fizetős szoftverre. Ez nagyszerű megoldás azoknak a hobbistáknak, akik nem akarnak 50 dollárt+ költeni professzionális JTAG adapterre.

- Ez az adapter használható más platformok, például ESP8266, ARM, AVR és még sok más hibakeresésére. Bizonyos konfigurációk a célplatformtól függenek, ez az utasítás csak az ESP32 beállítására vonatkozik.

- Ha már rendelkezik valamilyen JTAG adapterrel, akkor használhatja, ha az openOCD támogatja, csak indítsa el az openocd -t a jtag adapter típusától függően különböző konfigurációs fájlokkal.

- A platform.io megkönnyítheti a telepítést, de a hibakeresést csak fizetett professzionális verzió támogatja.

- A legtöbb ESP32 modullal működik. (például olcsó wemos lolin 32)

- ennek a jtag adapternek linuxszal is működnie kell, de én személy szerint nem teszteltem.

1. lépés: A szoftver előfeltételei

Arduino IDE 1.8 vagy újabb verzió. A Windows áruház verziója nem támogatott. Klasszikus telepítő verziót kell használnia, amely letölthető a hivatalos Arduino oldalról

Microsoft visual studio kód

Ezek a vizuális stúdió kódhoz szükséges kiegészítések kötelezőek

  • Arduino
  • Natív hibakeresés

Azt is javaslom, hogy telepítse ezt a kiegészítést, amely lehetővé teszi az intelisense -t a C/C ++ számára

C/C ++

Ebben a kézikönyvben 2 működő mappát fogok használni:

D: / devel / ESP32 / tools / - itt helyeztem el minden eszközt

C: / Users / xxxxx / Documents / Arduino / YourProject / - ez egy vázlatos mappa

bárhol máshol is elhelyezheti fájljait, ha szeretné, csak ne felejtse el frissíteni az összes hivatkozást a tényleges útvonallal.

2. lépés: Illesztőprogram telepítése és konfigurálása

Illesztőprogram telepítése és konfigurálása
Illesztőprogram telepítése és konfigurálása
Illesztőprogram telepítése és konfigurálása
Illesztőprogram telepítése és konfigurálása
Illesztőprogram telepítése és konfigurálása
Illesztőprogram telepítése és konfigurálása

Még akkor is, ha a Windows alapértelmezés szerint automatikusan észleli az FT2232 -t, a Windows alapértelmezett illesztőprogramjai nem elegendőek az összes előzetes szolgáltatáshoz, és le kell tölteni és telepíteni az illesztőprogramot az FTDI webhelyről:

Ha a megfelelő illesztőprogram telepítve van, akkor az FT2232 modult az eszközkezelőben nem csak 2 soros portként kell látni, hanem "A soros USB átalakító" és "B soros USB átalakító" néven is

A második lépés az illesztőprogram megváltoztatása az átalakítónk egyik csatornájához. Töltse le a zadig eszközt a https://zadig.akeo.ie/ webhelyről. Ha jól értem, ez az eszköz összekapcsolja a winUSB illesztőprogramot az FTDI -eszközzel, amely lehetővé teszi az openOCD és az USB -eszköz közötti alacsony szintű kommunikációt.

A zadig eszközben az "Opciók" menüben jelölje be az "Összes eszköz megjelenítése" jelölőnégyzetet, majd meg kell látnia az adaptert az elérhető eszközök listájában. Válassza a "Dual RS232-HS (0 interfész)" lehetőséget, majd válassza ki a "WinUSB v6.1.xxxx" illesztőprogramot, és végül kattintson az illesztőprogram cseréje gombra.

Ha az adaptert a számítógép másik USB -portjához csatlakoztatja, szükség van az illesztőprogram beállításainak újbóli módosítására a zadig eszköz segítségével, ellenkező esetben az openOCD nem találja az adaptert.

3. lépés: OpenOCD, Toolchain és Gdb

OpenOCD, Toolchain és Gdb
OpenOCD, Toolchain és Gdb

1. A nyílt OCD eszköz a körkörös hibakereséshez, az egyik oldalon chiphez beszél, a másik oldalon gdb szervert biztosít, ahol a hibakereső (kliens) csatlakozhat. Töltse le az openOCD for ESP32 fájlt a https://github.com/espressif/openocd-esp32/releases webhelyről, és csomagolja ki a D mappába: / devel / ESP32 / tools

2. szerkessze az openOCD konfigurációs fájljait:

esp-wroom-32.cfg

A fájl teljes elérési útja:

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

Ebben a fájlban beállíthatja a kommunikációs sebességet az "adapter_khz" paraméter megváltoztatásával. Például az "adapter_khz 8000" 8Mhz -t jelent.

Az alapértelmezett 20MHz, és túl magas lehet, ha hosszabb áthidaló vezetékeket vagy kenyérlapot használ. Azt javaslom, hogy 1Mhz -ről kezdje, és ha minden rendben van, lépjen nagyobb sebességre, számomra a 8Mhz megbízhatóan működik.

minimodule.cfg

A fájl teljes elérési útja: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimalodule.cfg

Ha jól értem, az eredeti minimodule az FTDI által gyártott FT 2232 -es túl drága féklap, és az egyetlen különbség az eredeti minimálmodul és a piacon elérhető olcsó modul vagy csupasz chip között az alapértelmezett USB -leírás. az open OCD jtag adaptert keres az eszközleírás alapján, az elrendezési init -t is módosítani kell.

Az olcsó modul leírása "Dual RS232-HS". Ha nem biztos az eszköz leírásában, ellenőrizheti az eszközkezelőben -> eszköztulajdonságok -> lap részletei -> a "Buszon bejelentett eszközleírás" tulajdonság értéke

A minimodule.cfg tartalmának az alábbi példának kell kinéznie, a # -vel kezdődő sorok törölhetők.

interfész 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 ftdi_layout_sata

esp32.cfg

A fájl teljes elérési útja:

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

Függelje az alábbi 2 sort az esp32.cfg végéhez. E módosítás nélkül a fékpontok hozzáadása nem működik.

#Force hw breakpoints. Ha van egy memória térképünk, akkor a bps.gdb_breakpoint_override szoftvert is engedélyezhetjük

3. Töltse le és telepítse az xtensa-esp32-elf eszköztárat-ez az eszköztár tartalmazza a parancssori hibakeresőt (gdb kliens), amely elengedhetetlen ahhoz, hogy minden grafikus IDE hibakeresése működjön. A csupasz eszköztár letölthető az espressif webhely "Alternatív beállítás" részéről

4. lépés: Kábelezés és első teszt

Kábelezés és első teszt
Kábelezés és első teszt
Kábelezés és első teszt
Kábelezés és első teszt

Csatlakoztassa az FT2322 modult az ESP -hez. Azt javaslom, hogy a lehető legrövidebb vezetékeket használja. Ha még nem ismeri a JTAG -t, ne felejtse el, hogy az adapter TDI -je a chip TDI -jébe kerül, az adapter TDO -ja pedig a chip TDO -jába. A JTAG adatvonalak NEM KERESZTÜK, mint az Rx/Tx az uarton!

A következő teszthez azt javaslom, hogy töltsön fel egy villogó példa vázlatot vagy más vázlatot, amely villogó LED -el, vagy sípolással vagy soros konzolra írással jelezheti, hogy a CPU fut -e vagy sem.

Indítsa el az openOCD -t a következő paranccsal

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimalodule.cfg -f board /esp-wroom-32.cfg

Ez elindítja az openOCD -t, és ha minden rendben van, akkor a parancssori kimenetben a következő sorokat kell látnia:

Információ: órajel 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), rész: 0x2003, ver: 0x1)

Az openocd folyamat a 3333 -as TCP porton is hallgat

Nyissa meg az új terminált, és indítsa el a parancssori gdb klienst a parancs követésével

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

Várjon egy percet, és amikor a gdb terminál készen áll, írja be egyenként a következő parancsokat

cél távirányító: 3333mon visszaállítás leállítás folytatása

Az első parancs megnyitja a kapcsolatot az openocd hibakereső szerverrel, a második leállítja a program végrehajtását az ESP -n, és a LED -nek abba kell hagynia a villogást, folytatni kell a program végrehajtásának visszaállítását, és a LED -nek újra villognia kell.

5. lépés: Hibakeresési konfiguráció hozzáadása a Visual Studio Code -hoz

Hibakeresési konfiguráció hozzáadása a Visual Studio Code -hoz
Hibakeresési konfiguráció hozzáadása a Visual Studio Code -hoz

Feltételezem, hogy ekkor már megfelelően konfigurálta a vizuális stúdió kódját és az arduino kiegészítőt, és ellenőrizheti és feltöltheti a vázlatot a táblára. Ha nem, nézze meg a vizuális stúdió kód és az arduino konfigurálására vonatkozó utasításokat, például ezen az oldalon:

A hibakeresés megkezdéséhez szükség van a build kimeneti mappa megadására. A vázlatmappa alatt van egy (rejtett) mappa.vscode, ahol az arduino.json fájl található. adja hozzá a fájlhoz a következő sort:

"output": "BuildOutput/"

futtassa az ellenőrzést vagy a feltöltést, és ellenőrizze újra a vázlatmappáját, új BuildOutput mappának kell lennie, és benne kell lennie.elf kiterjesztésű fájlnak. elf fájl létfontosságú a hibakereséshez.

A hibakereső beállításai a launch.json fájlban találhatók. Hozza létre ezt a fájlt a következő tartalommal, vagy másolja ezt a fájlt a csatolt példaprojektből. Ne felejtse el beállítani a 26. sort, és határozza meg a megfelelő útvonalat a projekt.elf fájljához.

{// Az IntelliSense használatával megismerheti a lehetséges attribútumokat. // Az egérmutatóval megtekintheti a meglévő attribútumok leírását. // További információkért látogasson el a következő oldalra: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "konfigurációk": [{"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 "}, {// dinamikus változat" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// static variant //" text ":" file 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 \.]*: / hardver "," launchCompleteCommand ":" exec-jat "," filterStderr ": true," args ": }]}

A hibakeresés megkezdése:

  1. Teljesítse és töltse fel a vázlatát a táblára
  2. Indítsa el az openOCD -t paraméterekkel
  3. Állítsa be a fékpontokat a kívánt kódba
  4. Az összes fékpont beállítása után győződjön meg arról, hogy megnyitotta a projekt fő.ino fájlját. (vagy a.elf fájl hardcode elérési útvonala a launch.json fájlban)
  5. Nyissa meg a hibakeresési panelt vs kódban (Ctrl + Shift + D)
  6. Válassza az "Arduino-GDB-openOCD" hibakeresőt, csak elérhetőnek kell lennie.
  7. Nyomja meg az F5 billentyűt a hibakeresés elindításához

Ajánlott: