Мазмуну:

ESP32 - Circruit Debug үчүн арзан чечим: 5 кадам
ESP32 - Circruit Debug үчүн арзан чечим: 5 кадам

Video: ESP32 - Circruit Debug үчүн арзан чечим: 5 кадам

Video: ESP32 - Circruit Debug үчүн арзан чечим: 5 кадам
Video: Управление двигателем постоянного тока с ШИМ с помощью Arduino и модуля L298N с библиотекой - Robojax 2024, Ноябрь
Anonim
ESP32 - Circruit Debug үчүн арзан чечим
ESP32 - Circruit Debug үчүн арзан чечим

Саламатсызбы, бул көрсөтмөдө 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 визуалдык студиясынын коду

Визуалдык студия коду үчүн бул кошумчалар милдеттүү

  • Arduino
  • Жергиликтүү мүчүлүштүктөрдү оңдоо

Мен ошондой эле C/C ++ үчүн intelisense иштетүүчү бул аддонду орнотууну сунуштайм

C/C ++

Бул колдонмодо мен 2 жумушчу папканы колдоном:

D: / devel / ESP32 / tools / - бул жерде мен бардык куралдарды жайгаштырдым

C: / Users / xxxxx / Documents / Arduino / YourProject / - бул эскизи бар папка

Кааласаңыз, файлдарыңызды башка жерге жайгаштыра аласыз, сураныч, реалдуу жолдогу бардык шилтемелерди жаңыртууну унутпаңыз.

2 -кадам: Драйверди орнотуу жана конфигурациялоо

Драйверди орнотуу жана конфигурациялоо
Драйверди орнотуу жана конфигурациялоо
Драйверди орнотуу жана конфигурациялоо
Драйверди орнотуу жана конфигурациялоо
Драйверди орнотуу жана конфигурациялоо
Драйверди орнотуу жана конфигурациялоо

Терезелер демейки боюнча FT2232 автоматтык түрдө аныктаса дагы, Windowsтун демейки драйверлери бардык алдын ала мүмкүнчүлүктөр үчүн жетишсиз жана драйверди FTDI сайтынан жүктөп алып, орнотуу керек

Туура драйвер орнотулганда, сиз FT2232 модулуңузду түзмөк менеджеринде 2 сериялык порт катары эле көрбөңүз, ошондой эле "USB сериялык конвертер А" жана "USB сериялык конвертер B" катары көрүшүңүз керек.

Экинчи кадам - бул конвертерибиздин бир каналы үчүн драйверди өзгөртүү. Http://zadig.akeo.ie/ден zadig куралын жүктөп алыңыз. Эгерде мен бул куралды winUSB драйверин FTDI түзмөгүнө туура түшүнсөм, анда openOCD менен USB түзмөгүнүн ортосундагы байланыштын төмөн деңгээлин камсыздайт.

Zadig куралында, "Параметрлер" менюсунда "Бардык түзмөктөрдү көрсөтүү" дегенди текшериңиз, анда сиз адаптериңизди жеткиликтүү түзмөктөрдүн тизмесинен көрүшүңүз керек. "Dual RS232-HS (Interface 0)" тандап, андан кийин алмаштыруучу драйверди "WinUSB v6.1.xxxx" тандап, драйверди алмаштыруу баскычын басыңыз.

Адаптериңизди компьютериңиздин башка USB портуна туташтырганыңызда, zadig куралы аркылуу драйвердин жөндөөлөрүн кайра өзгөртүү керек, башкача айтканда openOCD адаптериңизди таппай калат.

3 -кадам: OpenOCD, Toolchain жана Gdb

OpenOCD, Toolchain жана Gdb
OpenOCD, Toolchain жана Gdb

1. Ачык OCD - бул мүчүлүштүктөрдү оңдоонун куралы, бир жагынан микросхема менен сүйлөшөт, ал мүчүлүштүктөрдү оңдоочу (кардар) туташа турган gdb серверин камсыз кылат. Https://github.com/espressif/openocd-esp32/releases дан ESP32 үчүн openOCD жүктөп алып, аны 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 сүрөттөмөсү. ачык OCD түзмөктүн сүрөттөмөсүнө негизделген jtag адаптерин издеп жатат, ошондой эле макеттин демилгесин тууралоо керек.

Арзан модулда "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 0x00s ntxxxxxxxxxx

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 инструментин жүктөп алып, орнотуңуз-бул куралдар командалык сапты оңдогучту (gdb кардары) камтыйт, ал ар кандай графикалык IDEден жумушчу мүчүлүштүктөрдү оңдоо үчүн абдан маанилүү. Жалаң инструментти espressif сайтынан, "Альтернативдүү орнотуу" бөлүмүнөн жүктөп алсаңыз болот

4 -кадам: Электр өткөргүчтөрү жана биринчи сыноо

Кабель жана биринчи сыноо
Кабель жана биринчи сыноо
Кабель жана биринчи сыноо
Кабель жана биринчи сыноо

FT2322 модулун ESP менен туташтырыңыз. Мен мүмкүн болушунча кыска зымдарды колдонууну сунуштайм. Эгер сиз JTAG үчүн жаңы болсоңуз, адаптердин TDI чиптин TDIсине өтөрүн унутпаңыз, ошондой эле адаптердин TDO чиптин TDOсуна барат. JTAG маалымат линиялары Uart боюнча Rx/Tx сыяктуу ӨТКӨРҮЛБӨЙТ!

Кийинки тест үчүн мен жаркылдаган мисалдын эскизин же башка эскизди жүктөөнү сунуштайм, бул CPU иштеп турганда же иштебей тургандыгын көрсөтөт, LED жарк этип же сигнал берип же сериялык консолго жазуу.

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 board /esp-wroom-32.cfg

Бул openOCD башталат жана эгерде баары жакшы болсо, буйрук сабынын чыгарылышында төмөнкү саптар камтылганын көрүшүңүз керек:

Маалымат: саат ылдамдыгы 8000 кГц Маалымат: JTAG таптоо: esp32.cpu0 тап/түзмөк табылган: 0x120034e5 (mfg: 0x272 (Tensilica), бөлүгү: 0x2003, вер: 0x1) Маалымат: JTAG таптоо: esp32.cpu1 таптоо/түзмөк табылган: 0x120034e5 (mfg: 0x272 (Tensilica), бөлүгү: 0x2003, вер: 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 кодексине мүчүлүштүктөрдү конфигурациялоону кошуңуз

Visual Studio кодуна мүчүлүштүктөрдү конфигурациялоону кошуңуз
Visual Studio кодуна мүчүлүштүктөрдү конфигурациялоону кошуңуз

Ошол учурда сиз визуалдык студия кодун жана arduino addonду туура конфигурациялагансыз жана сиз эскизиңизди тактага жүктөп бере аласыз. Болбосо, визуалдык студия кодун жана 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 "}, {// dynamic variant" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// static variant //" text ":" file 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 баскычын басыңыз

Сунушталууда: