Talaan ng mga Nilalaman:

Paano Gumamit ng isang Debugger sa isang ESP32: 11 Mga Hakbang (na may Mga Larawan)
Paano Gumamit ng isang Debugger sa isang ESP32: 11 Mga Hakbang (na may Mga Larawan)

Video: Paano Gumamit ng isang Debugger sa isang ESP32: 11 Mga Hakbang (na may Mga Larawan)

Video: Paano Gumamit ng isang Debugger sa isang ESP32: 11 Mga Hakbang (na may Mga Larawan)
Video: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, Hulyo
Anonim
Paano Gumamit ng isang Debugger sa isang ESP32
Paano Gumamit ng isang Debugger sa isang ESP32

Nais mo bang kumuha ng isang pagsilip sa loob ng iyong code upang makita kung bakit ito kumikilos sa paraan nito? Ayon sa kaugalian sa mga proyekto ng ESP32, kakailanganin mong magdagdag ng walang katapusang pahayag sa pag-print upang subukan kung ano ang nangyayari, ngunit may isang mas mahusay na paraan!

Ang isang debugger ay isang paraan ng pagtingin sa nangyayari sa mga partikular na seksyon ng iyong code at upang subukan ang iba't ibang mga variable na halaga nang hindi muling naiipon ang iyong code, kadalasan ay hindi ito isang bagay na magagamit sa amin sa mga naka-embed na proyekto, ngunit sa gabay na ito ipapakita ko sa iyo kung paano ito gamitin sa isang ESP32.

Sa gabay na ito ipapakita ko sa iyo upang i-setup ang hardware, i-setup ang software at ipakita ang isang simpleng halimbawa ng paggamit ng debugger.

Mga gamit

  • ESP-Prog - Ito ang kinakailangan ng board para sa pag-debug

    • Saktong isa na binili ko *
    • $ 5 Mas mura, ngunit hindi ko ito nasubukan *
  • Isang ESP32 na sumisira sa pin 12, 13, 14, 15

    • Adafruit Feather Huzzah32
    • D1 Mini ESP32 *
  • [OPSYONAL] Debug Shield na ibinebenta ko sa Tindie

    • Feather Huzzah32
    • D1 Mini ESP32

* = Link ng Kaakibat

Hakbang 1: Suriin ang Video

Image
Image

Mayroon akong isang video sa paksang ito kung nais mong suriin ito.

Sa aking channel ay karaniwang gumagawa ako ng mga video na batay sa ESP8266 at ESP32, kaya kung interesado ka sa mga iyon, mangyaring suriin ito!

Hakbang 2: Hardware - Mga Bahagi at Kable

Hardware - Mga Bahagi at Kable
Hardware - Mga Bahagi at Kable
Hardware - Mga Bahagi at Kable
Hardware - Mga Bahagi at Kable
Hardware - Mga Bahagi at Kable
Hardware - Mga Bahagi at Kable

Upang magamit ang debugger kailangan mo lamang ng isang ESP-Prog at halos anumang lupon ng ESP32 (naka-link sa mga ito sa isang naunang hakbang)

ESP-Prog:

Ang ESP-Prog ay isang board na dinisenyo ng espressif, ang mga gumagawa ng mga chips ng ESP32 at ESP8266. Kumokonekta ito sa mga pin ng JTAG ng ESP32 upang payagan kaming magamit ang debugger. Maaari din itong magamit para sa pagprograma ng mga board ng ESP32, ngunit hindi ko ito sasakupin dito.

Lupon ng ESP32:

Maaari mong gamitin ang karaniwang anumang board ng ESP32 para sa sandaling ito ay masira ang mga pin ng JTAG, na 12, 13, 14 & 15. Nasubukan ko ang parehong isang Adafruit feather Huzzah32 at isang D1 Mini 32 board at pareho silang gumana ng maayos.

Mangyaring tandaan na maaari mong gamitin ang mga JTAG pin sa iyong sketch gamit ang debugger, halimbawa ang built-in na LED ng board na Huzzah32 ay nasa pin 13, kaya hindi mo ito magagamit habang nai-debug.

Mga kable:

Upang ikonekta ang ESP-Prog sa ESP32, gamitin lamang ang gabay sa mga kable na ibinigay sa larawan sa itaas. Suriin ang mga diagram ng mga kable ng iyong board ng ESP32 kung hindi mo agad nakita ang mga naaangkop na pin tulad minsan gumagamit sila ng ibang scheme ng pagbibigay ng pangalan.

Mga Debug Shield:

Opsyonal ito, ngunit nagbebenta ako ng ilang mga kalasag sa Tindie para sa Huzzah32 at sa D1 Mini 32 na ginagawang talagang simple ang pagkonekta sa ESP-Prog, sinisira nito ang mga naaangkop na pin sa isang konektor ng IDC na maaari mong gamitin ang isang ribbon cable upang direktang kumonekta sa pagitan ng ang kalasag at ang ESP-Prog

Hakbang 3: Hardware - Pag-setup ng Driver

Hardware - Pag-setup ng Driver
Hardware - Pag-setup ng Driver
Hardware - Pag-setup ng Driver
Hardware - Pag-setup ng Driver
Hardware - Pag-setup ng Driver
Hardware - Pag-setup ng Driver

Upang magamit ang ESP-prog para sa pag-debug, kailangan naming i-install ang mga naaangkop na driver para dito. Nagbibigay ang PlatformIO ng ilang mga hakbang para dito, ngunit dadaan ako sa mga hakbang sa Windows sa gabay na ito.

  1. I-download at mai-install ang mga driver ng FTDI para sa ESP-Prog mula rito, mag-scroll sa kanan upang i-download ang "setup executable" na bersyon upang gawing mas madali.
  2. Mag-download at mag-install ng tool na Zadig mula rito, pinapayagan kaming mag-install ng isang generic na driver na kinakailangan para sa pag-debug.
  3. Sa naka-plug in na ESP-Prog, buksan ang Zadig
  4. Sa Zadig application, sa ilalim ng "Mga Pagpipilian", i-click ang "Ilista ang Lahat ng Mga Device"
  5. Mapupunan na ngayon ang drop down sa Zadig, piliin ang opsyong "Dual RS232-HS (Interface 0)". Siguraduhin na ang interface 0 na iyong pinili!
  6. Sa kanan ng berdeng arrow, dapat piliin ang "WinUSB", pagkatapos ay i-click ang "Palitan ang Driver"

Kapag natapos na ang iyong mga driver ay dapat na i-setup para magamit!

Tandaan: Kung binago mo ang USB port na iyong ginagamit para sa ESP-Prog, maaaring kailangan mong ulitin muli ang mga hakbang 3-6. Kung nakakuha ka ng isang error tulad ng ipinakita sa larawan sa itaas kapag nag-debug, kailangan mong ulitin ang mga hakbang.

Hakbang 4: Software: Pag-install ng PlatformIO

Software: Pag-install ng PlatformIO
Software: Pag-install ng PlatformIO
Software: Pag-install ng PlatformIO
Software: Pag-install ng PlatformIO
Software: Pag-install ng PlatformIO
Software: Pag-install ng PlatformIO

Ang PlatformIO ay isang IDE para sa pagbuo ng iba't ibang magkakaibang naka-embed na mga balangkas, kabilang ang Arduino eco-system. Mas kumplikado itong gamitin kaysa sa tulad ng Arduino IDE, ngunit napakalakas nito at mayroong ilang mga tampok na labis na na-miss ng Arduino IDE, tulad ng awtomatikong kumpleto.

Kinakailangan ito sa PlatformIO upang magamit ang debugger. Kung pamilyar ka na sa PlatformIO, huwag mag-atubiling lumaktaw nang maaga sa ilang mga hakbang.

  • Mag-download at mag-install ng Visual Studio Code (VS Code) mula sa ibinigay na link sa website ng PlatformIO.org
  • Buksan ang VS Code, at buksan ang menu ng mga extension, ang pindutan ay naka-highlight sa larawan sa itaas
  • I-type ang "platformio" sa paghahanap, piliin ito at i-click ang i-install.

Hakbang 5: Software: Paggamit ng PlatformIO

Software: Paggamit ng PlatformIO
Software: Paggamit ng PlatformIO
Software: Paggamit ng PlatformIO
Software: Paggamit ng PlatformIO
Software: Paggamit ng PlatformIO
Software: Paggamit ng PlatformIO

Ang paggamit ng PlatformIO ay medyo kakaiba kaysa sa paggamit ng Arudino IDE, kaya sa hakbang na ito ay tatalakayin lamang namin ang mga pangunahing kaalaman sa pagkuha ng isang halimbawa na tumatakbo sa isang board.

Pagbubukas ng Isang Halimbawa:

  1. I-click ang pindutan ng Home sa toolbar ng PlatformIO (Tulad ng ipinakita sa larawan)
  2. I-click ang pindutan na "Mga Halimbawa ng Proyekto"
  3. Piliin ang halimbawa ng "Arduino-blink" sa ilalim ng seksyon ng Espressif 32

Magbubukas ito ng isang sample na proyekto ng blink. Ang layout ng isang PlatformIO ay medyo magkakaiba kumpara sa isang proyekto ng Arduino, kaya't dumaan tayo sa mga pangunahing kaalaman.

Nasaan ang code?

Ang code para sa iyong proyekto ay maiimbak sa folder na "src", para sa halimbawa ng blink makikita mo ang isang "blink.cpp" na file, ang file na ito ay kapareho ng iyong sketch file (.ino) sa isang proyekto ng Arduino.

Paano ko mai-configure ang aking board?

Ang mga pagsasaayos para sa iyong proyekto ay itinatago sa loob ng isang "platformio.ini" na file sa iyong proyekto. Ito ay talagang isa sa aking mga paboritong bagay tungkol sa PlatformIO kumpara sa Arduino IDE, hindi ito naging makatuwiran sa akin na ang mga setting ng board ay hindi nakatali sa mga sketch.

Ang halimbawa ng.ini ay naglalaman ng mga kahulugan para sa maraming magkakaibang mga board, ngunit upang mapanatili ang mga bagay na simple tanggalin natin ang ilalim ng dalawang kahulugan.

Saan ko maitatakda ang aking COM port?

Tunay na awtomatikong susubukan ng PlatformIO na hanapin ang tamang COM port na gagamitin, kaya maaari ka talagang makawala na hindi nagtatakda ng anumang bagay para dito. Ngunit kung mayroon kang maraming mga COM port, na gagawin mo kapag ginagamit ang debugger, sa palagay ko makatuwiran upang itakda ang tukoy na kailangan mo. Maaari mong makita ang iba't ibang mga aparato na mayroon ka sa pamamagitan ng pag-click sa seksyong "Mga Device" sa home tab, at maitatakda mo kung alin ang iyong ESP32 na nasa "platformio.ini" sa pamamagitan ng pagdaragdag ng isang "upload_port" na pagsasaayos.

Paano ko mai-upload ang aking code?

Mag-click sa pindutang Mag-upload (ang icon ay isang arrow na tumuturo sa kanan) at dapat itong bumuo at mag-upload ng code. Dapat mayroon ka ngayong isang blinking LED sa iyong board.

Hakbang 6: Pag-debug: Potensyal na Balat ng Saging

Pag-debug: Potensyal na Balat ng Saging!
Pag-debug: Potensyal na Balat ng Saging!
Pag-debug: Potensyal na Balat ng Saging!
Pag-debug: Potensyal na Balat ng Saging!
Pag-debug: Potensyal na Balat ng Saging!
Pag-debug: Potensyal na Balat ng Saging!

Ito ay isang bagay na nahuli ako kapag inihahanda ko ito at sana ay maayos sa oras na subukan mo ito, ngunit naisip kong mahalagang umalis dito.

Sa oras ng paggawa ng gabay na ito, ang pinakabagong bersyon ng PlatformIO ay 4.3.0 at mayroon itong isang bug na nauugnay sa kakayahang i-debug. Sa kabutihang palad maaari naming mag-update sa pinakabagong bersyon ng pag-unlad na medyo madali na malulutas ang problema.

Suriin sa Home page ang bersyon ng core ng PlatformIO, kung ito ay "4.3.0", gawin ang mga sumusunod na hakbang.

  1. Sa toolbar ng PlatformIO, i-click ang icon na terminal
  2. Sa uri ng terminal: pag-upgrade ng pio --dev
  3. Ang restartVS code at PlatfromIO ay dapat na ma-update

Hakbang 7: Pag-debug: Pag-configure

Pag-debug: Pag-configure
Pag-debug: Pag-configure

Kailangan naming i-edit ang file na "PlatofrmIO.ini" upang paganahin ang pag-debug, kailangan lamang namin magdagdag ng dalawang bagay dito.

debug_tool = esp-prog

Itinatakda nito ang tool ng pag-debug na ginagamit namin.

debug_init_break = pag-setup ng tbreak

Ito ay isang trick na natutunan namin mula sa video ni Andress Spiess sa pag-debug sa ESP32. Sinasabi nito sa debugger na huminto sa pag-setup ng aming application.

Hakbang 8: Pag-debug: Simula ng Pag-debug

Pag-debug: Simula ng Pag-debug
Pag-debug: Simula ng Pag-debug
Pag-debug: Simula ng Pag-debug
Pag-debug: Simula ng Pag-debug
Pag-debug: Simula ng Pag-debug
Pag-debug: Simula ng Pag-debug
Pag-debug: Simula ng Pag-debug
Pag-debug: Simula ng Pag-debug

Bago kami mapunta dito, gagawa kami ng isang maliit na pagbabago sa sketch na magpapadali upang maipakita kung ano ang maaari mong gawin sa pag-debug.

  1. Lumikha ng isang bagong variable, "int delayTime = 1000;" sa labas ng anumang mga pamamaraan, gagawin itong isang global variable.
  2. Palitan ang numero sa loob ng mga tawag na pagkaantala sa loop gamit ang bagong variable na ito: pagkaantala (delayTime);

I-upload muli ang code sa board, pagkatapos upang simulang i-debug, sa toolbar, i-click ang "Run" pagkatapos ay "Start Debugging"

Makikita mo ang mga bagay na gumagalaw sa window ng terminal, ngunit kahit na nakasaad dito na ito ay tagumpay, kung nag-click ka sa "Debug Console" makikita mong gumagana pa rin ito, tatagal ng ilang segundo upang matapos.

Kung ang lahat ay nagpunta tulad ng inaasahan makikita mo ang paghinto ng debugger sa simula ng pag-set up.

Hakbang 9: Pag-debug: Pangunahing Paggamit

Pag-debug: Pangunahing Paggamit
Pag-debug: Pangunahing Paggamit
Pag-debug: Pangunahing Paggamit
Pag-debug: Pangunahing Paggamit
Pag-debug: Pangunahing Paggamit
Pag-debug: Pangunahing Paggamit
Pag-debug: Pangunahing Paggamit
Pag-debug: Pangunahing Paggamit

Takpan natin ang ilan sa mga pangunahing kaalaman ng kung ano ang maaari mong gawin sa debugger

Lumilikha ng Mga Breakpoint:

Ang isang breakpoint ay isang punto ng iyong code kung saan mo nais na ihinto ang debugger. Upang lumikha ng isang breakpoint na pag-click sa kaliwa ng numero ng linya. Bilang demo, magdagdag ng breakpoint sa unang linya sa loop na pamamaraan.

Breakpoint Navigation:

Upang lumipat sa pagitan ng breakpoint o lumipat sa susunod na linya ng code, maaari mong gamitin ang mga tool na lilitaw sa tuktok ng screen. Pindutin ang pindutan na "magpatuloy" (mukhang isang pindutan ng pag-play) upang ilipat ang breakpoint na nilikha namin sa loob ng loop.

Mga Variable na relo:

Hinahayaan ka ng mga variable na relo na subaybayan ang halaga ng mga variable kapag ang debugger ay tumigil sa isang breakpoint. Upang magdagdag ng isang bagong variable na panonood maaari kang mag-click sa + icon, pagkatapos i-type lamang ang pangalan ng variable. Bilang isang demo, i-type ang variable na idinagdag namin sa nakaraang hakbang na "delayTime"

Variable Viewer:

Maaari mo ring makita ang lahat ng mga variable at ang kanilang mga halaga na magagamit sa iyong kasalukuyang breakpoint. Upang i-demo ito, Kung titingnan mo ang seksyong "Global" dapat mong hanapin ang variable na "delayTime".

Pag-edit ng Halaga ng Mga variable:

Maaari mo ring i-edit ang mga halaga ng mga variable at magkakaroon ito ng agarang epekto sa pag-uugali ng iyong mga code. Upang maipakita ito, mag-click sa variable ng delayTime sa seksyong Variable Viewer, at baguhin ang halaga sa "100". Upang maipakita ang pagtatrabaho na ito, huwag paganahin ang breakpoint sa loob ng loop sa pamamagitan ng pag-click muli sa kaliwang numero ng linya. Pindutin ang pindutan ng magpatuloy sa breakpoint navigation bar. Ang LED sa iyong ESP32 ay dapat na ngayon ay kumikislap nang mas mabilis kaysa dati.

Hakbang 10: Pag-troubleshoot

Pag-troubleshoot
Pag-troubleshoot

Natagpuan ko sa panahon ng aking pagsubok, na ilang beses na hindi ako makakapag-upload sa ESP32 habang nakakonekta ito sa ESP-prog, at hindi ko mawari ang isang pattern kung bakit ito nangyari, dahil sa karamihan ng oras ay maaari akong mag-upload nang wala kahit anong problema. Nalaman kong maaari ko lang idiskonekta ang ESP32 at ang ESP-Prog, i-upload ang code sa ESP32 at pagkatapos ay ikonekta muli ang mga ito at gagana ito ng maayos.

Hakbang 11: Conclussion

Sa palagay ko ito ay isang talagang cool na tool upang idagdag sa toolbox upang matulungan kung ano ang nangyayari sa loob ng iyong proyekto.

Gusto kong marinig kung nahanap mo ang kapaki-pakinabang na ito !. Mangyaring ipaalam sa akin sa mga komento sa ibaba, o sumali sa akin at ng maraming iba pang mga tagagawa sa aking server ng Discord, kung saan maaari naming pag-usapan ang paksang ito o anumang iba pang kaugnay na tagagawa na mayroon ka, ang mga tao ay talagang kapaki-pakinabang doon kaya't isang magandang lugar na mag-hang palabas

Nais ko ring magbigay ng isang malaking salamat sa aking mga Sponsor ng Github na tumutulong na suportahan ang aking ginagawa, talagang pinahahalagahan ko ito. Kung hindi mo alam, ang Github ay tumutugma sa mga sponsorship para sa unang taon, kaya kung gumawa ka ng isang sponsorship itutugma nila ito ng 100% sa mga susunod na buwan. Salamat sa pagbabasa!

Inirerekumendang: