Агуулгын хүснэгт:

ESP32 - Circruit дибаг хийх хямд шийдэл: 5 алхам
ESP32 - Circruit дибаг хийх хямд шийдэл: 5 алхам

Видео: ESP32 - Circruit дибаг хийх хямд шийдэл: 5 алхам

Видео: ESP32 - Circruit дибаг хийх хямд шийдэл: 5 алхам
Видео: Proyecto de heliostato Templastat / Templastat Heliostat Project: improvements, updates and test 2024, Долдугаар сарын
Anonim
ESP32 - Circruit дибаг хийх хямд шийдэл
ESP32 - Circruit дибаг хийх хямд шийдэл

Сайн байна уу, энэхүү зааварт FTDI 2232HL чип дээр суурилсан, харааны код, arduino addon ашиглан хямд JTAG адаптерийг хэрхэн тохируулах талаар тайлбарласан болно.

- USB холбогчтой FTDI 2232HL модуль ebay дээр 8 доллараас эхэлж, төлбөртэй програм хангамж шаардлагагүй. Энэ бол бүх JTAG адаптерт 50 $+ зарцуулахыг хүсдэггүй хобби сонирхогчдод маш сайн шийдэл юм.

- Энэхүү адаптерийг ESP8266, ARM, AVR болон бусад олон платформуудыг дибаг хийхэд ашиглаж болно. Зарим тохиргоо нь зорилтот платформоос хамаардаг бөгөөд энэ заавар нь зөвхөн ESP32 -ийн тохиргоог хамарна.

- Хэрэв та аль хэдийн JTAG адаптер эзэмшдэг бол үүнийг openOCD дэмждэг бол ашиглах боломжтой, jtag адаптерийн төрлөөс хамааран өөр өөр тохиргооны файлтай openocd -ийг эхлүүлээрэй.

- platform.io нь танд тохиргоог хялбарчлах боломжтой боловч дибаг хийх нь зөвхөн төлбөртэй мэргэжлийн хувилбарт дэмжигддэг.

- Ихэнх ESP32 модулиудтай ажилладаг. (жишээ нь хямд wemos lolin 32)

- Энэ jtag адаптер нь linux -тэй ажиллах ёстой, гэхдээ би өөрөө үүнийг туршиж үзээгүй.

Алхам 1: Програм хангамжийн нөхцөл

Arduino IDE 1.8 буюу түүнээс дээш хувилбар. Windows дэлгүүрийн хувилбарыг дэмждэггүй. Та суулгацын сонгодог хувилбарыг ашиглах ёстой бөгөөд үүнийг Arduino албан ёсны хуудаснаас татаж авах боломжтой

Microsoft Visual Studio -ийн код

Визуал студи кодын эдгээр нэмэлтүүд заавал байх ёстой

  • Arduino
  • Эх дибаг хийх

Би C/C ++ дээр intelisense -ийг идэвхжүүлдэг энэ нэмэлтийг суулгахыг зөвлөж байна

C/C ++

Энэхүү гарын авлагад би 2 ажлын хавтас ашиглах болно.

D: / devel / ESP32 / tools / - энд би бүх хэрэгслийг байрлуулсан

C: / Users / xxxxx / Documents / Arduino / YourProject / - энэ бол ноорог бүхий хавтас юм

Хэрэв та хүсвэл файлуудаа өөр газар байрлуулж болно, бүх лавлагааг өөрийн бодит замналаар шинэчлэхээ бүү мартаарай.

Алхам 2: Драйверийг суулгах, тохируулах

Жолоочийн суулгалт ба тохиргоо
Жолоочийн суулгалт ба тохиргоо
Жолоочийн суулгалт ба тохиргоо
Жолоочийн суулгалт ба тохиргоо
Жолоочийн суулгалт ба тохиргоо
Жолоочийн суулгалт ба тохиргоо

Хэдийгээр Windows нь анхдагчаар FT2232 -ийг автоматаар илрүүлдэг байсан ч гэсэн Windows -ийн анхдагч драйверууд нь бүх урьдчилсан функцүүдэд хангалтгүй байдаг бөгөөд драйверийг FTDI сайтаас татаж авах, суулгах шаардлагатай байдаг

Зөв драйвер суулгасан тохиолдолд та төхөөрөмжийн менежер дэх өөрийн FT2232 модулийг зөвхөн 2 цуваа порт гэж үзэхээс гадна "USB сериал хөрвүүлэгч А", "USB цуваа хөрвүүлэгч B" хэлбэрээр харах ёстой.

Хоёрдахь алхам бол хөрвүүлэгчийн нэг сувгийн драйверийг өөрчлөх явдал юм. Http://zadig.akeo.ie/ дээрээс zadig хэрэгслийг татаж аваарай. Хэрэв би энэ хэрэгслийг зөв ойлгосон бол winUSB драйверыг FTDI төхөөрөмжтэй холбож өгдөг бөгөөд энэ нь openOCD болон USB төхөөрөмжийн хоорондох доод түвшний холболтыг идэвхжүүлдэг.

Zadig хэрэгслийн "Сонголтууд" цэснээс "Бүх төхөөрөмжийг харуулах" гэснийг шалгаад, боломжтой төхөөрөмжүүдийн жагсаалтад адаптераа харах хэрэгтэй. "Хос RS232-HS (Интерфэйс 0)" -ийг сонгоод "WinUSB v6.1.xxxx" орлуулах драйверыг сонгоод драйверыг солих товчийг дарна уу.

Та адаптераа өөр өөр USB порт руу холбохдоо драйверын тохиргоог zadig хэрэгслээр дахин өөрчлөх шаардлагатай болно, гэхдээ өөрөөр хэлбэл openOCD таны адаптерийг олохгүй болно.

Алхам 3: OpenOCD, Toolchain ба Gdb

OpenOCD, Toolchain ба Gdb
OpenOCD, Toolchain ба Gdb

1. Нээлттэй OCD нь тойрог замд дибаг хийх хэрэгсэл бөгөөд нэг талдаа чиптэй ярилцаж, дибаг хийгч (үйлчлүүлэгч) холбогдох боломжтой gdb серверийг өгдөг. ESP32-д зориулсан openOCD-г https://github.com/espressif/openocd-esp32/releases дээрээс татаж аваад D: / devel / ESP32 / tools / фолдерт задлаарай.

2. openOCD тохиргооны файлуудыг засварлах:

esp-wroom-32.cfg

Энэ файлын бүрэн зам нь:

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

Энэ файлд та "adapter_khz" параметрийг өөрчлөх замаар холбооны хурдыг тохируулж болно. Жишээлбэл, "adapter_khz 8000" гэдэг нь 8 МГц гэсэн утгатай.

Анхдагч нь 20 МГц бөгөөд хэрэв та илүү урт холбогч утас эсвэл талхны хавтан ашиглаж байгаа бол энэ нь хэт өндөр байж магадгүй юм. Би 1 МГц -ээс эхлэхийг зөвлөж байна, хэрэв бүх зүйл хэвийн байгаа бол илүү өндөр хурдтай яваарай, миний хувьд 8 МГц найдвартай ажилладаг.

minimodule.cfg

Энэ файлын бүрэн зам нь: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Хэрэв би зөв ойлговол жинхэнэ минимодул бол FTDI -ийн үйлдвэрлэсэн FT 2232 -тэй тоормосны самбарыг хэт өндөр үнээр зардаг бөгөөд зах зээл дээр байгаа жинхэнэ минимодуль ба хямд модуль эсвэл нүцгэн чипний хоорондох ялгаа нь USB -ийн анхдагч тайлбар юм. open OCD нь төхөөрөмжийн тодорхойлолт дээр үндэслэн jtag адаптер хайж байгаа бөгөөд түүний зохион байгуулалтыг тохируулах шаардлагатай байна.

Хямд модуль нь "Хос RS232-HS" гэсэн тайлбартай. Хэрэв та төхөөрөмжийнхөө тодорхойлолтыг сайн мэдэхгүй байгаа бол үүнийг төхөөрөмжийн менежер -> төхөөрөмжийн шинж чанар -> табын дэлгэрэнгүй мэдээлэл -> "Автобусны мэдээлсэн төхөөрөмжийн тодорхойлолт" хэсгээс шалгаж болно.

Minimodule.cfg -ийн агуулга доорх жишээ шиг харагдах ёстой, # -ээс эхэлсэн мөрүүдийг устгаж болно.

интерфэйс 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 0x00signs

esp32.cfg

Энэ файлын бүрэн зам нь:

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

Esp32.cfg -ийн төгсгөлд дараах 2 мөрийг хавсаргана уу. Энэ өөрчлөлтгүйгээр тоормосны цэгийг нэмэх нь ажиллахгүй болно.

#Hw тасалдлын цэгүүдийг хүчээр аваарай. Санах ойн газрын зурагтай болсны дараа бид bps.gdb_breakpoint_override програм хангамжийг зөвшөөрөх боломжтой

3. xtensa-esp32-elf toolchain-ийг татаж суулгаарай-энэ хэрэгсэл нь аливаа график IDE-ээс ажиллах дибаг хийхэд чухал үүрэг гүйцэтгэдэг командын шугамын дибаг хийгч (gdb клиент) агуулдаг. Нүцгэн багаж хэрэгслийг espressif сайтаас "Альтернатив тохиргоо" хэсгээс татаж авах боломжтой

Алхам 4: Цахилгааны утас ба анхны туршилт

Утас ба анхны туршилт
Утас ба анхны туршилт
Утас ба анхны туршилт
Утас ба анхны туршилт

FT2322 модулийг ESP -тэй холбоно уу. Хэрэв та JTAG -д шинээр нэвтэрч байгаа бол адаптерийн TDI нь чипний TDI рүү, мөн адаптерийн TDO чипийн TDO руу шилжих болно гэдгийг бүү мартаарай. JTAG өгөгдлийн шугамууд Uart дээрх Rx/Tx шиг огтлолцоогүй байна!

Дараагийн туршилтын хувьд би анивчих жишээний ноорог эсвэл бусад схемийг байршуулахыг зөвлөж байна.

OpenOCD -ийг дараах тушаалыг ашиглан эхлүүлнэ үү

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f интерфейс/ftdi/minimodule.cfg -f самбар /esp-wroom-32.cfg

Энэ нь openOCD -ийг эхлүүлэх бөгөөд хэрэв бүх зүйл хэвийн байвал командын шугамын гаралт дараах мөрүүдийг агуулсан байх ёстой.

Мэдээлэл: цагийн хурд 8000 кГц Мэдээлэл: JTAG цорго: esp32.cpu0 цорго/төхөөрөмж олдсон: 0x120034e5 (mfg: 0x272 (Tensilica), хэсэг: 0x2003, ver: 0x1) Мэдээлэл: JTAG цорго: esp32.cpu1 цорго/төхөөрөмж олдсон: 0x120034e5 (mfg: 0x272 (Tensilica), хэсэг: 0x2003, ver: 0x1)

Мөн openocd процессыг TCP 3333 порт дээр сонсох болно

Шинэ терминалыг нээгээд командын дагуу gdb клиентийн тушаалын мөрийг эхлүүлнэ үү

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

Секунд хүлээгээд gdb терминал бэлэн болоход дараах тушаалуудыг нэг нэгээр нь бичнэ үү

зорилтот алсын удирдлага: 3333 сарыг дахин тохируулахыг зогсоох үргэлжлүүлэх

Эхний тушаал нь openocd дибаг хийх сервертэй холболтыг нээдэг, хоёрдугаарт ESP дээрх програмын гүйцэтгэлийг зогсоож, LED нь анивчихаа больж, програмын гүйцэтгэлийг үргэлжлүүлж, LED дахин анивчиж эхлэх ёстой.

Алхам 5: Visual Studio код дээр Debug тохиргоог нэмнэ үү

Visual Studio код дээр Debug тохиргоог нэмнэ үү
Visual Studio код дээр Debug тохиргоог нэмнэ үү

Энэ үед та харааны студийн код болон arduino addon -ийг зөв тохируулсан байгаа бөгөөд та ноорогоо шалгаад самбар дээр байршуулж болно. Хэрэв тийм биш бол харааны студийн код болон arduino-г хэрхэн тохируулах тухай зааврыг шалгана уу, жишээ нь энэ хуудсан дээр

Дебаг хийхийн тулд бүтээх гаралтын хавтсыг зааж өгөх шаардлагатай. Таны ноорог хавтасны доор (далд) хавтас байна.vscode, энд arduino.json файл байна. дараах файлыг энэ файлд нэмнэ үү.

"output": "BuildOutput/"

баталгаажуулах эсвэл байршуулах, ноорог хавтасаа дахин ажиллуулахын тулд шинэ BuildOutput хавтас байх ёстой бөгөөд дотор нь.elf өргөтгөлтэй файл байх ёстой. elf файл нь дибаг хийхэд чухал үүрэгтэй.

Debugger тохиргоо нь launch.json файлд байна. Дараах агуулгаар энэ файлыг үүсгэ, эсвэл та энэ файлыг хавсаргасан жишээ төслөөс хуулж болно. 26 -р мөрийг тохируулж, өөрийн төслийн.elf файлд зөв замыг тодорхойлохоо бүү мартаарай.

{// Боломжит шинж чанаруудын талаар мэдэхийн тулд IntelliSense ашиглана уу. // Одоо байгаа шинж чанаруудын тайлбарыг харахын тулд хулганыг дарна уу. // Дэлгэрэнгүй мэдээлэл авахыг хүсвэл дараах хаягаар зочилно уу: https://go.microsoft.com/fwlink/?linkid=830387 "хувилбар": "0.2.0", "тохиргоо": [{"нэр": "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 "}, {// dynamic variant" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// статик хувилбар //" текст ":" файл c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Мэдээлэл \: [w / d \.]*: / техник хангамж "," launchCompleteCommand ":" exec-үргэлжлүүлэх "," filterStderr ": үнэн," args ": }]}

Дебагыг хэрхэн эхлүүлэх вэ:

  1. Гүйцэтгэж, ноорогоо самбар дээр байршуулна уу
  2. OpenOCD -ийг параметрүүдээр эхлүүлнэ үү
  3. Хүссэн газартаа тоормосны цэгүүдийг тохируулна уу
  4. Бүх тоормосны цэгүүдийг тохируулсны дараа төслийнхөө үндсэн.ino файлыг нээсэн эсэхээ шалгаарай. (эсвэл launch.json дахь.elf файлын хатуу кодын зам)
  5. Алдааны самбарыг vs код дээр нээнэ үү (Ctrl + Shift + D)
  6. "Arduino-GDB-openOCD" дибаг хийгчийг сонгох нь зөвхөн боломжтой байх ёстой.
  7. Дибаг эхлүүлэхийн тулд F5 дээр дарна уу

Зөвлөмж болгож буй: