Съдържание:
- Стъпка 1: Софтуерни изисквания
- Стъпка 2: Инсталиране и конфигуриране на драйвера
- Стъпка 3: OpenOCD, Toolchain и Gdb
- Стъпка 4: Окабеляване и първи тест
- Стъпка 5: Добавете конфигурация за отстраняване на грешки към кода на Visual Studio
Видео: ESP32 - Евтино решение за отстраняване на грешки в Circruit: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Здравейте, В тази инструкция е описано как да настроите евтин JTAG адаптер на базата на чип FTDI 2232HL, с визуален код и добавка arduino.
- FTDI 2232HL модул с USB конектор от 8 $ на ebay и не се изисква платен софтуер. Това е чудесно решение за любители, които не искат да харчат 50 $+ за професионален JTAG адаптер.
- Този адаптер може да се използва за отстраняване на грешки на други платформи като ESP8266, ARM, AVR и много други. Някои конфигурации зависят от целевата платформа, тази инструкция обхваща само настройката за ESP32.
- Ако вече притежавате някакъв JTAG адаптер, можете да го използвате, когато се поддържа от openOCD, просто стартирайте openocd с различен конфигурационен файл в зависимост от типа на вашия jtag адаптер.
- platform.io може да ви улесни настройката, но отстраняването на грешки се поддържа само в платена професионална версия.
- Работи с повечето от модулите ESP32. (например евтин wemos lolin 32)
- този jtag адаптер трябва да работи и с Linux, но аз лично не го тествах.
Стъпка 1: Софтуерни изисквания
Arduino IDE версия 1.8 или по -нова. Версията на магазина на Windows не се поддържа. Трябва да използвате класическата версия на инсталатора, която може да бъде изтеглена от официалната страница на Arduino
Код за визуално студио на Microsoft
Тези добавки за визуален студиен код са задължителни
- Arduino
- Роден отстраняване на грешки
Препоръчвам също да инсталирате тази добавка, която позволява intelisense за C/C ++
C/C ++
В това ръководство ще използвам 2 работни папки:
D: / devel / ESP32 / tools / - тук съм поставил всички инструменти
C: / Users / xxxxx / Documents / Arduino / YourProject / - това е папка със скица
можете да поставите вашите файлове навсякъде другаде, ако искате, просто не забравяйте да актуализирате всички препратки с вашия действителен път.
Стъпка 2: Инсталиране и конфигуриране на драйвера
Дори ако Windows автоматично открива FT2232 по подразбиране, драйверите по подразбиране на Windows не са достатъчни за всички предварителни функции и е необходимо да изтеглите и инсталирате драйвера от сайта на FTDI
Когато е инсталиран правилен драйвер, трябва да видите вашия модул FT2232 в диспечера на устройства не само като 2 серийни порта, но и като "USB сериен преобразувател A" и "USB сериен преобразувател B"
Втората стъпка е да смените драйвера за един канал на нашия конвертор. Изтеглете инструмента zadig от https://zadig.akeo.ie/. Ако разбирам правилно, този инструмент свързва winUSB драйвера към FTDI устройство, което позволява комуникация на ниско ниво между openOCD и USB устройство.
В инструмента zadig, в менюто „Опции“поставете отметка в „Покажи всички устройства“, след това трябва да видите вашия адаптер в списъка с наличните устройства. Изберете „Dual RS232-HS (Interface 0)“, след това изберете заместващ драйвер „WinUSB v6.1.xxxx“и накрая щракнете върху бутона смяна на драйвера.
Когато свържете адаптера си към различен USB порт на компютъра, е необходимо да промените отново настройките на драйвера чрез инструмента zadig, в противен случай openOCD няма да намери вашия адаптер.
Стъпка 3: OpenOCD, Toolchain и Gdb
1. Open OCD е инструмент за отстраняване на грешки в Circruit, от една страна той говори с чип, от друга страна осигурява gdb сървър, където дебъгерът (клиент) може да се свърже. Изтеглете openOCD за ESP32 от 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" означава 8Mhz.
По подразбиране е 20MHz и може да е твърде високо, ако използвате по -дълги джъмперни проводници или макет. Препоръчвам да започнете от 1Mhz и ако всичко е наред, преминете към по -висока скорост, за мен 8Mhz работи надеждно.
minimodule.cfg
Пълният път към този файл е: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
Ако правилно разбирам, оригиналният минимадул е надценена платка за излизане с FT 2232, произведена от FTDI и единствената разлика между оригиналния минимадул и евтиния модул или чип, наличен на пазара, е USB описание по подразбиране. отворен OCD търси jtag адаптер въз основа на описанието на устройството, също трябва да се коригира оформлението init.
Евтин модул има описание "Dual 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 0x000x ftdi
esp32.cfg
Пълният път към този файл е:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg
Добавете следните 2 реда в края на esp32.cfg. Без тази промяна добавянето на спирачни точки няма да работи.
#Принудителни точки на прекъсване. След като имаме карта с памет, можем също да разрешим на софтуера bps.gdb_breakpoint_override hard
3. Изтеглете и инсталирайте xtensa-esp32-elf toolchain-тази инструментална верига съдържа инструмента за отстраняване на грешки в командния ред (gdb клиент), който е жизненоважен, за да има работеща отстраняване на грешки от всяка графична IDE. Bare toolchain може да бъде изтеглен от сайта на espressif, раздел „Алтернативна настройка“https://docs.espressif.com/projects/esp-idf/en/latest/get-started/windows-setup-scratch.html
Стъпка 4: Окабеляване и първи тест
Свържете модула FT2322 с ESP. Препоръчвам да използвате възможно най -къси проводници. Ако сте нов в JTAG, не забравяйте, че TDI на адаптера ще отиде в TDI на чипа, също TDO на адаптера ще отиде в TDO на чипа. Линиите за данни на JTAG НЕ СА КРОСКИ като Rx/Tx на uart!
За следния тест препоръчвам качване на мигаща примерна скица или някаква друга скица, която може да показва кога процесорът работи или не чрез мигащ светодиод или звуков сигнал или запис на серийна конзола.
Стартирайте openOCD чрез следната команда
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 дъска /esp-wroom-32.cfg
Това ще стартира openOCD и ако всичко е наред, трябва да видите в изхода на командния ред съдържа следните редове:
Информация: тактова честота 8000 kHzInfo: 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 терминалът ще бъде готов, напишете следните команди една по една
целево дистанционно: 3333mon reset спиране продължи
първата команда отваря връзка към сървъра за отстраняване на грешки на openocd, втората ще спре изпълнението на програмата на ESP и светодиодът трябва да спре да мига, да продължи възстановяването на изпълнението на програмата и светодиодът трябва да започне да мига отново.
Стъпка 5: Добавете конфигурация за отстраняване на грешки към кода на Visual Studio
Предполагам, че в този момент вече сте конфигурирали правилно визуалния студиен код и добавката arduino и можете да проверите и качите скицата си на дъската. Ако не, моля, проверете някои инструкции как да конфигурирате кода на визуалното студио и arduino, например на тази страница
За да накарате отстраняването на грешки да е необходимо, за да посочите изходната папка за изграждане. Под папката с скици има (скрита) папка.vscode, където е файлът arduino.json. добавете към този файл следния ред:
"output": "BuildOutput/"
стартирайте проверка или качване и отново проверете папката си за скици, трябва да има нова папка BuildOutput и вътре в нея файл с разширение.elf. elf файлът е жизненоважен за отстраняване на грешки.
Настройките за отстраняване на грешки са във файла launch.json. Създайте този файл със следното съдържание или можете да копирате този файл от приложен примерен проект. Не забравяйте да коригирате ред 26 и да определите правилния път към вашия.elf файл на вашия проект.
{// Използвайте IntelliSense, за да научите за възможните атрибути. // Задръжте курсора на мишката, за да видите описания на съществуващи атрибути. // За повече информация посетете: 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 "}, {// динамичен вариант" 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-continue "," filterStderr ": true," args ": }]}
Как да започнете отстраняване на грешки:
- Съобразявайте се и качете скицата си на борда
- Стартирайте openOCD с параметри
- Задайте спирачни точки в кода, където искате
- След като зададете всички спирачни точки, уверете се, че сте отворили основния.ino файл на вашия проект. (или път с твърд код към.elf файл в launch.json)
- Отваряне на панела за отстраняване на грешки в кода срещу (Ctrl + Shift + D)
- Изберете инструмента за отстраняване на грешки "Arduino-GDB-openOCD", трябва да е наличен само.
- Натиснете F5, за да започнете отстраняване на грешки
Препоръчано:
Как да получите СЕКРЕТЕН СВЕТ !!!!!! (Режим на отстраняване на грешки): 3 стъпки
Как да получите СЕКРЕТЕН СВЕТ !!!!!! (Режим за отстраняване на грешки): В тази инструкция ще ви покажа да стигнете до режим на таен свят в Minecraft
HackerBox 0049: Отстраняване на грешки: 8 стъпки
HackerBox 0049: Отстраняване на грешки: Поздрави за хакерите на HackerBox по целия свят! За HackerBox 0049 експериментираме с отстраняване на грешки в цифрови микроконтролерни системи, конфигурирайки LOLIN32 ESP-32 WiFi Bluetooth платформата в Arduino IDE, прилагайки FastLED Animation L
Основни Java отстраняване на грешки: 9 стъпки
Основно отстраняване на грешки в Java: Това ръководство за инструкции обхваща основна стъпка по стъпка проверка за обработка на грешки в Java. Това ръководство не предоставя никаква помощ при настройването на софтуер за програмиране на java и очаква, че вече сте изпълнили тази задача предварително. За най-доброто
Извличане на максимума от вашата поръчка на печатни платки (и отстраняване на грешки): 4 стъпки
Извличане на максимума от вашата поръчка на печатни платки (и отстраняване на грешки): Когато поръчвате печатни платки онлайн, често получавате 5 или повече от еднакви печатни платки и не винаги се нуждаете от всички тях. Ниската цена на тези ПХБ по поръчка е много примамлива и често не се притесняваме какво да правим с допълнителните. В
Серийно отстраняване на грешки с CloudX: 3 стъпки
Серийно отстраняване на грешки с CloudX: В този проект се стремя да обясня концепцията за отстраняване на грешки чрез серийния терминал. Но първо като начало, нека обясним концепцията му чрез нейните значения. серийна комуникациясерийната комуникация е за комуникация между CloudX bo