![ESP32 - Penyelesaian Murah untuk dalam Circruit Debug: 5 Langkah ESP32 - Penyelesaian Murah untuk dalam Circruit Debug: 5 Langkah](https://i.howwhatproduce.com/images/001/image-866-49-j.webp)
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01
![ESP32 - Penyelesaian Murah untuk dalam Circruit Debug ESP32 - Penyelesaian Murah untuk dalam Circruit Debug](https://i.howwhatproduce.com/images/001/image-866-50-j.webp)
Halo, Dalam petunjuk ini dijelaskan bagaimana untuk menyediakan penyesuai JTAG murah berdasarkan cip FTDI 2232HL, dengan kod visual dan addon arduino.
- Modul FTDI 2232HL dengan penyambung USB bermula dari $ 8 di ebay dan tidak diperlukan perisian berbayar. Ini adalah penyelesaian terbaik untuk penggemar yang tidak mahu mengeluarkan 50 $ + untuk penyesuai profesionall JTAG.
- Penyesuai ini boleh digunakan untuk debug platform lain seperti ESP8266, ARM, AVR dan banyak lagi. Sebilangan konfigurasi bergantung pada platform sasaran, arahan ini hanya merangkumi persediaan untuk ESP32.
- Sekiranya anda sudah memiliki beberapa penyesuai JTAG, anda boleh menggunakannya apabila disokong oleh openOCD, mulailah openocd dengan fail konfigurasi yang berbeza berdasarkan jenis penyesuai jtag anda.
- platform.io dapat membuat penyediaan lebih mudah untuk anda, tetapi debug hanya disokong dalam versi profesional berbayar.
- Berfungsi dengan sebahagian besar modul ESP32. (contohnya wemos lolin 32 murah)
- penyesuai jtag ini harus berfungsi dengan linux juga, tetapi saya secara peribadi tidak mengujinya.
Langkah 1: Keperluan Perisian
Arduino IDE versi 1.8 atau lebih baru. Versi kedai Windows tidak disokong. Anda mesti menggunakan versi pemasang klasik yang boleh dimuat turun dari laman rasmi Arduino
Kod studio visual Microsoft
Tambahan ini untuk kod studio visual adalah wajib
- Arduino
- Debug asli
Saya juga mengesyorkan untuk memasang addon ini yang membolehkan intelisense untuk C / C ++
C / C ++
Dalam manual ini saya akan menggunakan 2 folder berfungsi:
D: / devel / ESP32 / tools / - di sini saya telah meletakkan semua alat
C: / Users / xxxxx / Documents / Arduino / YourProject / - ini adalah folder dengan lakaran
anda boleh meletakkan fail anda di tempat lain jika anda mahu, jangan lupa untuk mengemas kini semua rujukan dengan jalan sebenar anda.
Langkah 2: Pemasangan dan Konfigurasi Pemacu
![Pemasangan dan Konfigurasi Pemacu Pemasangan dan Konfigurasi Pemacu](https://i.howwhatproduce.com/images/001/image-866-51-j.webp)
![Pemasangan dan Konfigurasi Pemacu Pemasangan dan Konfigurasi Pemacu](https://i.howwhatproduce.com/images/001/image-866-52-j.webp)
![Pemasangan dan Konfigurasi Pemacu Pemasangan dan Konfigurasi Pemacu](https://i.howwhatproduce.com/images/001/image-866-53-j.webp)
Walaupun tetingkap secara automatik mengesan FT2232 secara automatik, pemacu lalai tetingkap tidak mencukupi untuk semua ciri maju dan perlu memuat turun dan memasang pemacu dari laman FTDI
Apabila pemacu yang betul dipasang, anda akan melihat modul FT2232 anda dalam pengurus peranti bukan sahaja sebagai 2 port bersiri tetapi juga sebagai "penukar siri USB A" dan "penukar siri USB B"
Langkah kedua adalah pemacu perubahan untuk satu saluran penukar kami. Muat turun alat zadig dari https://zadig.akeo.ie/. Sekiranya saya memahami dengan betul alat ini, pautkan pemacu winUSB ke peranti FTDI yang membolehkan komunikasi tahap rendah antara openOCD dan peranti USB.
Dalam alat zadig, dalam menu "Pilihan" tandakan "Tunjukkan semua Peranti", maka anda akan melihat penyesuai anda dalam senarai peranti yang tersedia. Pilih "Dual RS232-HS (Interface 0)" kemudian pilih driver pengganti "WinUSB v6.1.xxxx" dan akhirnya klik pada butang pengganti driver.
Apabila anda menyambungkan penyesuai anda ke port USB yang berlainan di komputer anda, adalah perlu untuk menukar tetapan pemacu melalui alat zadig sekali lagi, jika tidak, OpenOCD tidak akan menemui penyesuai anda.
Langkah 3: OpenOCD, Toolchain dan Gdb
![OpenOCD, Toolchain dan Gdb OpenOCD, Toolchain dan Gdb](https://i.howwhatproduce.com/images/001/image-866-54-j.webp)
1. Open OCD adalah alat untuk melakukan debug Circruit, di satu sisi ia bercakap untuk membuat chip di sisi lain ia menyediakan pelayan gdb di mana debugger (klien) dapat berhubung. Muat turun openOCD untuk ESP32 dari https://github.com/espressif/openocd-esp32/releases dan bongkar ke folder D: / devel / ESP32 / tools
2. edit fail konfigurasi openOCD:
esp-wroom-32.cfg
Jalan penuh ke fail ini ialah:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg
Dalam fail ini anda dapat mengatur kecepatan komunikasi dengan mengubah parameter "adapter_khz". Contohnya "adapter_khz 8000" bermaksud 8Mhz.
Lalai adalah 20MHz dan mungkin terlalu tinggi jika anda menggunakan kabel jumper atau papan roti yang lebih panjang. Saya cadangkan untuk memulakan pada 1Mhz dan jika semuanya baik-baik saja, pergi ke kelajuan yang lebih tinggi, bagi saya 8Mhz berfungsi dengan pasti.
minimodule.cfg
Jalan penuh ke fail ini ialah: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
Sekiranya saya faham dengan betul, minimodule asli adalah papan brek yang terlalu mahal dengan FT 2232 yang dihasilkan oleh FTDI dan hanya perbezaan antara modul minimum asli dan modul murah atau cip kosong yang terdapat di pasaran adalah keterangan USB lalai. open OCD mencari penyesuai jtag berdasarkan keterangan peranti, juga susun atur perlu disesuaikan.
Modul murah mempunyai keterangan "Dual RS232-HS". Sekiranya anda tidak pasti mengenai perihalan peranti anda, anda boleh menyemaknya di pengurus peranti -> sifat peranti -> butiran tab -> nilai harta benda "Penerangan peranti yang dilaporkan oleh bas"
Kandungan minimodule.cfg akan kelihatan seperti contoh di bawah, baris bermula dengan # dapat dihapuskan.
antara muka 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_signal nSRST -Data 0x0020
esp32.cfg
Jalan penuh ke fail ini ialah:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg
Lampirkan mengikuti 2 baris hingga akhir esp32.cfg. Tanpa pengubahsuaian ini, penambahan titik titik tidak akan berfungsi.
Titik putus #Force hw. Setelah kita mempunyai peta memori, kita juga dapat membiarkan perisian bps.gdb_breakpoint_override keras
3. Muat turun dan pasang rantai alat xtensa-esp32-elf - rantai alat ini mengandungi debugger baris arahan (klien gdb) yang sangat penting untuk melakukan debug berfungsi dari mana-mana IDE grafik. Rantai alat telanjang boleh dimuat turun dari laman espressif, bahagian "Persediaan alternatif"
Langkah 4: Pendawaian dan Ujian Pertama
![Pendawaian dan Ujian Pertama Pendawaian dan Ujian Pertama](https://i.howwhatproduce.com/images/001/image-866-55-j.webp)
![Pendawaian dan Ujian Pertama Pendawaian dan Ujian Pertama](https://i.howwhatproduce.com/images/001/image-866-56-j.webp)
Sambungkan modul FT2322 dengan ESP. Saya mengesyorkan untuk menggunakan wayar sesingkat mungkin. Sekiranya anda baru menggunakan JTAG, jangan lupa bahawa TDI penyesuai akan pergi ke TDI cip, juga TDO penyesuai akan pergi ke TDO cip. Talian data JTAG TIDAK DITULIS seperti Rx / Tx di uart!
Untuk ujian berikut, saya sarankan memuat naik lakaran contoh berkedip atau beberapa lakaran lain yang dapat menunjukkan ketika CPU sedang berjalan atau tidak dengan berkelip LED atau berbunyi bip atau menulis ke konsol bersiri.
Mulakan openOCD dengan mengikuti arahan
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
Ini akan mula openOCD dan jika semuanya baik-baik saja, anda harus melihat output baris arahan mengandungi baris berikut:
Maklumat: kelajuan jam 8000 kHzInfo: ketuk JTAG: esp32.cpu0 ketuk / peranti dijumpai: 0x120034e5 (mfg: 0x272 (Tensilica), bahagian: 0x2003, ver: 0x1) Maklumat: Ketuk JTAG: esp32.cpu1 ketukan / peranti dijumpai: 0x120034e5 (mfg: 0x272 (Tensilica), bahagian: 0x2003, ver: 0x1)
Proses openocd juga akan mendengar pada port TCP 3333
Buka terminal baru dan mulakan baris perintah gdb klien dengan mengikuti perintah
D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe
Tunggu sebentar dan bila terminal gdb akan siap menulis perintah berikut satu demi satu
jarak jauh sasaran: tetapan semula 3333mon berhenti terus
perintah pertama membuka sambungan ke pelayan debug openocd, yang kedua akan menghentikan pelaksanaan program pada ESP dan LED harus berhenti berkedip, terus memulihkan pelaksanaan program dan LED akan mula berkelip lagi.
Langkah 5: Tambahkan Konfigurasi Debug ke Visual Studio Code
![Tambahkan Konfigurasi Debug ke Kod Visual Studio Tambahkan Konfigurasi Debug ke Kod Visual Studio](https://i.howwhatproduce.com/images/001/image-866-57-j.webp)
Saya menganggap pada ketika itu anda sudah mengkonfigurasi kod studio visual dan arduino addon dengan betul dan anda boleh mengesahkan dan memuat naik lakaran anda ke papan. Sekiranya tidak, sila periksa beberapa arahan bagaimana mengkonfigurasi kod visual studio dan arduino, misalnya di halaman ini
Untuk mendapatkan debug berfungsi, perlu menentukan folder output binaan. Di bawah folder sketsa anda ada (tersembunyi) folder.vscode, di mana fail arduino.json. tambah ke fail ini baris berikut:
"output": "BuildOutput /"
jalankan verifikasi atau muat naik dan periksa folder lakaran anda sekali lagi, harus ada folder BuildOutput baru dan di dalamnya fail dengan ekstensi.elf. fail elf sangat penting untuk debug.
Tetapan debugger ada di file launch.json. Buat fail ini dengan kandungan berikut, atau anda boleh menyalin fail ini dari contoh projek yang dilampirkan. Jangan lupa sesuaikan baris 26 dan tentukan jalan yang betul ke fail.elf projek anda.
{// Gunakan IntelliSense untuk mengetahui tentang kemungkinan atribut. // Arahkan kursor untuk melihat keterangan atribut yang ada. // Untuk maklumat lebih lanjut, lawati: 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 "}, {// varian dinamik" teks ":" fail c: / Pengguna / xxxxx / Dokumen / Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// varian statik //" teks ":" fail c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignFailures": true}], "stopAtEntry": true, "serverStarted": "Maklumat \: [w / d \.] *: / perkakasan "," launchCompleteCommand ":" exec-terus "," filterStderr ": true," args ": }]}
Cara memulakan penyahpepijatan:
- Selesaikan dan muat naik lakaran anda ke papan
- Mulakan openOCD dengan parameter
- Tetapkan titik tolak dalam kod di mana anda mahu
- Setelah menetapkan semua titik tolak, pastikan anda telah membuka fail.ino utama projek anda. (atau jalan keras ke fail.elf di launch.json)
- Buka panel debug dalam kod vs (Ctrl + Shift + D)
- Pilih debugger "Arduino-GDB-openOCD", seharusnya hanya tersedia.
- Tekan F5 untuk memulakan debug
Disyorkan:
Reka Bentuk Permainan dalam Flick dalam 5 Langkah: 5 Langkah
![Reka Bentuk Permainan dalam Flick dalam 5 Langkah: 5 Langkah Reka Bentuk Permainan dalam Flick dalam 5 Langkah: 5 Langkah](https://i.howwhatproduce.com/images/001/image-2360-j.webp)
Reka Bentuk Permainan dalam Flick dalam 5 Langkah: Flick adalah cara yang sangat mudah untuk membuat permainan, terutama seperti teka-teki, novel visual, atau permainan petualangan
Arduino Uno Fish Feeder dalam 6 Langkah Murah dan Mudah !: 6 Langkah
![Arduino Uno Fish Feeder dalam 6 Langkah Murah dan Mudah !: 6 Langkah Arduino Uno Fish Feeder dalam 6 Langkah Murah dan Mudah !: 6 Langkah](https://i.howwhatproduce.com/images/007/image-18383-j.webp)
Arduino Uno Fish Feeder dalam 6 Langkah Murah dan Mudah !: Oleh itu, mungkin diperlukan sedikit latar belakang untuk projek ini. Orang yang mempunyai ikan peliharaan mungkin menghadapi masalah yang sama seperti saya: percutian dan kealpaan. Saya selalu lupa untuk memberi makan ikan saya dan selalu berebut-rebut melakukannya sebelum pergi ke
THE MURAH YANG MURAH INTERNET, DIJALANKAN BELT, SLIDER KAMERA DIY 48 ": 12 Langkah (dengan Gambar)
![THE MURAH YANG MURAH INTERNET, DIJALANKAN BELT, SLIDER KAMERA DIY 48 ": 12 Langkah (dengan Gambar) THE MURAH YANG MURAH INTERNET, DIJALANKAN BELT, SLIDER KAMERA DIY 48 ": 12 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/009/image-25345-j.webp)
THE INTERNET'S MURAH YANG MURAH, DIPEROLEHI BELT, 48 "DIY CAMERA SLIDER: Parallax Printing menyajikan penyelesaian yang murah untuk fotografi paralaks bermotor. Nota: Panduan ini berumur beberapa tahun dan pada masa sejak ditulis, pembuatan slaid Opteka telah mengubahsuai reka bentuk platform dengan membuang cor
Antaramuka Multi-Touch pada yang Murah (benar-benar Murah): 3 Langkah
![Antaramuka Multi-Touch pada yang Murah (benar-benar Murah): 3 Langkah Antaramuka Multi-Touch pada yang Murah (benar-benar Murah): 3 Langkah](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10542749-multi-touch-interface-on-the-cheapreally-cheap-3-steps-j.webp)
Antaramuka Multi-Touch pada yang Murah (benar-benar Murah): Ini adalah Instruksional pertama saya, jadi harap bersikap baik. Ini adalah cara membuat antara muka berbilang sentuhan di luar meja anda dengan wang yang sangat sedikit. Akhirnya ada video yang dimuat naik, maaf mengenai kadar bingkai komputer riba saya yang tidak baik
Tanda Iklan Mudah Alih dengan Harga Murah hanya dalam 10 Langkah !!: 13 Langkah (dengan Gambar)
![Tanda Iklan Mudah Alih dengan Harga Murah hanya dalam 10 Langkah !!: 13 Langkah (dengan Gambar) Tanda Iklan Mudah Alih dengan Harga Murah hanya dalam 10 Langkah !!: 13 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/004/image-11996-9-j.webp)
Tanda Iklan Mudah Alih dengan Harga Murah Hanya dalam 10 Langkah !!: Buat tanda iklan mudah alih, murah dan mudah alih anda sendiri. Dengan tanda ini, anda dapat memaparkan mesej atau logo anda di mana sahaja kepada sesiapa sahaja di seberang kota. Instruksional ini adalah tindak balas terhadap / peningkatan / perubahan: https://www.instructables.com/id/Low-Cost-Illuminated