Агуулгын хүснэгт:
- Алхам 1: Програм хангамжийн нөхцөл
- Алхам 2: Драйверийг суулгах, тохируулах
- Алхам 3: OpenOCD, Toolchain ба Gdb
- Алхам 4: Цахилгааны утас ба анхны туршилт
- Алхам 5: Visual Studio код дээр Debug тохиргоог нэмнэ үү
Видео: ESP32 - Circruit дибаг хийх хямд шийдэл: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Сайн байна уу, энэхүү зааварт 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
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 тохиргоог нэмнэ үү
Энэ үед та харааны студийн код болон 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 ": }]}
Дебагыг хэрхэн эхлүүлэх вэ:
- Гүйцэтгэж, ноорогоо самбар дээр байршуулна уу
- OpenOCD -ийг параметрүүдээр эхлүүлнэ үү
- Хүссэн газартаа тоормосны цэгүүдийг тохируулна уу
- Бүх тоормосны цэгүүдийг тохируулсны дараа төслийнхөө үндсэн.ino файлыг нээсэн эсэхээ шалгаарай. (эсвэл launch.json дахь.elf файлын хатуу кодын зам)
- Алдааны самбарыг vs код дээр нээнэ үү (Ctrl + Shift + D)
- "Arduino-GDB-openOCD" дибаг хийгчийг сонгох нь зөвхөн боломжтой байх ёстой.
- Дибаг эхлүүлэхийн тулд F5 дээр дарна уу
Зөвлөмж болгож буй:
ESP32: 11 алхам дээр дибаг хийгчийг хэрхэн ашиглах вэ (зурагтай)
ESP32 дээр дибаг хийгчийг хэрхэн ашиглах вэ: Та яагаад иймэрхүү ааш авир гаргахын тулд кодоо харахыг хүсч байсан уу? Уламжлал ёсоор ESP32 төслүүдэд юу болж байгааг олж мэдэхийн тулд эцэс төгсгөлгүй хэвлэх мэдэгдлийг нэмэх шаардлагатай байсан ч илүү сайн арга байна! Дибаг хийгч
Windows -ийн цөмийн дибаг хийгчийг сүлжээндээ хэрхэн тохируулах вэ: 6 алхам
Windows -ийн цөмийн дибаг хийгчийг сүлжээндээ хэрхэн тохируулах вэ: Дебаг хийх нь алдааны үндсэн шалтгааныг олж тогтооход хэрэглэгддэг түгээмэл хэрэгсэл юм. Алдаа нь янз бүрийн аргаар халдвар авч чаддаг. Энэ нь системийн сүйрэлд хүргэж болзошгүй (цэнхэр дэлгэц/BSOD), энэ нь програмын эвдрэлийг үүсгэж, таны системийг хөлдөхөд хүргэж болзошгүй юм
Java дибаг хийх үндсэн алхам: 9 алхам
Java -ийн үндсэн дибаг хийх: Энэхүү зааварчилгаа нь Java алдааг зохицуулах үндсэн алхам алхамаар шалгах болно. Энэхүү гарын авлага нь java програмчлалын програм хангамжийг тохируулахад ямар ч туслалцаа үзүүлэхгүй бөгөөд та энэ даалгаврыг хугацаанаас нь өмнө биелүүлсэн гэж найдаж байна. Хамгийн сайн сайхны төлөө
CloudX ашиглан цуврал дибаг хийх: 3 алхам
CloudX ашиглан цуврал дибаг хийх: Энэ төсөлд би цуваа терминалаар дибаг хийх тухай ойлголтыг тайлбарлахыг зорьж байна. Гэхдээ эхлээд ойлголтоо утгыг нь тайлбарлаж өгье. Цуваа харилцаа холбооны харилцаа холбоо нь CloudX -ийн хоорондох харилцаанд зориулагдсан болно
Хямд бичлэг хийх студи хийх!: 4 алхам
Хямдхан бичлэг хийх студи хийх!: Ийм байдлаар та хямд үнээр бичлэг хийх студи хийдэг. Миний уурхай ойролцоогоор 1200 орчим үнэтэй боловч надад танд хэрэггүй олон нэмэлт зүйл бий. Хэрэв та компьютертай бол 200 орчим доллар авах боломжтой гэж би бодож байна. Эсвэл үнэхээр хямд үнээр явах шаардлагатай бол та өөрөө худалдаж аваарай