Tartalomjegyzék:
- 1. lépés: A szoftver előfeltételei
- 2. lépés: Illesztőprogram telepítése és konfigurálása
- 3. lépés: OpenOCD, Toolchain és Gdb
- 4. lépés: Kábelezés és első teszt
- 5. lépés: Hibakeresési konfiguráció hozzáadása a Visual Studio Code -hoz
Videó: ESP32 - Olcsó megoldás Circruit hibakereséshez: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
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
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
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
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
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:
- Teljesítse és töltse fel a vázlatát a táblára
- Indítsa el az openOCD -t paraméterekkel
- Állítsa be a fékpontokat a kívánt kódba
- 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)
- Nyissa meg a hibakeresési panelt vs kódban (Ctrl + Shift + D)
- Válassza az "Arduino-GDB-openOCD" hibakeresőt, csak elérhetőnek kell lennie.
- Nyomja meg az F5 billentyűt a hibakeresés elindításához
Ajánlott:
Fényszennyező megoldás - Artemis: 14 lépés
Fényszennyezési megoldás - Artemis: A fényszennyezés mindannyiunkat érint világszerte. Az izzó feltalálása óta a fény sokkal népszerűbb lett, és kifejezetten olyan nagyvárosokban használták, mint New York City és Chicago. Mindez a fény hatással lehet
Labirintus megoldás Boe-Bot: 3 lépés
Labirintusmegoldó Boe-Bot: Helló! A nevem Maahum Imran. A 11. osztályos technológiai osztály tagja vagyok. Feladatunk volt, hogy vegyük el Boe-Bot-jainkat, és programozzuk be, hogy ügyesen menjünk át egy labirintuson. Ez eleinte kemény kihívás volt, és bevallom, a segédeszköz nélkül
IOT megoldás a megosztó kerékpárhoz: 6 lépés
IOT megoldás a megosztó kerékpárhoz: A megosztó kerékpár manapság nagyon népszerű Kínában. A piacon több mint 10 márkájú megosztott kerékpár található, és a “ mobike ” a leghíresebb, több mint 100 millió regisztrált felhasználóval rendelkezik, és más városokban is elterjedt
Teljes Arduino rotációs megoldás: 5 lépés
Teljes Arduino forgó megoldás: A forgó jeladók forgatható vezérlőgombok elektronikus projektekhez, gyakran használják az Arduino család mikrovezérlőivel. Használhatók a paraméterek finomhangolására, a menükben való navigálásra, objektumok mozgatására a képernyőn, bármilyen érték beállítására. Gyakori helyettesek
Arduino Projekt: Teszttartomány LoRa RF1276 modul GPS nyomkövetéshez Megoldás: 9 lépés (képekkel)
Arduino Projekt: Vizsgálati tartomány LoRa modul RF1276 GPS nyomkövetéshez Megoldás: Csatlakozás: USB - soros Szükség: Chrome böngésző igény: 1 X Arduino Mega igény: 1 X GPS igény: 1 X SD kártya igény: 2 X LoRa modem RF1276 Funkció: Arduino GPS érték küldése a fő bázishoz - A Dataino Server Lora modul fő adatait tárolja: Ultra nagy hatótávolság