Мазмуну:
- 1 -кадам: Программалык шарттар
- 2 -кадам: Драйверди орнотуу жана конфигурациялоо
- 3 -кадам: OpenOCD, Toolchain жана Gdb
- 4 -кадам: Электр өткөргүчтөрү жана биринчи сыноо
- 5 -кадам: Visual Studio кодексине мүчүлүштүктөрдү конфигурациялоону кошуңуз
Video: ESP32 - Circruit Debug үчүн арзан чечим: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Саламатсызбы, бул көрсөтмөдө 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
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 кодексине мүчүлүштүктөрдү конфигурациялоону кошуңуз
Ошол учурда сиз визуалдык студия кодун жана 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 ": }]}
Мүчүлүштүктөрдү оңдоону кантип баштоо керек:
- Эчкизди тактаңызга жүктөп бериңиз
- OpenOCD параметрлери менен баштаңыз
- Каалаган жерге кодду киргизиңиз
- Бардык тормоздук чекиттерди койгондон кийин, долбооруңуздун негизги.ino файлын ачканыңызга ынаныңыз. (же launch.json файлында.elf файлына катаал код)
- Мүчүлүштүктөрдү оңдоо панелин vs коддо ачуу (Ctrl + Shift + D)
- Тандоо "Arduino-GDB-openOCD" мүчүлүштүктөрдү оңдоочу гана жеткиликтүү болушу керек.
- Мүчүлүштүктөрдү оңдоону баштоо үчүн F5 баскычын басыңыз
Сунушталууда:
Жарыкты булгоочу чечим - Артемида: 14 кадам
Жарыкты булгоочу чечим - Артемида: Жарыктын булганышы дүйнө жүзү боюнча баарыбызга таасир эткен нерсе. Лампочка ойлоп табылгандан бери, жарык бир топ популярдуу болуп, өзгөчө Нью -Йорк жана Чикаго сыяктуу чоң шаарларда колдонула баштады. Бул жарыктын баары таасир этиши мүмкүн
Жогорку чечим вебкамерасы: 9 кадам (сүрөттөр менен)
Жогорку чечимдеги веб -камера: Бир нече жылдар бою мен RPi негизиндеги веб -камераны колдоном (PiCam модулу менен). Өндүрүлгөн сүрөттөр баары жайында болчу, бирок мен сапатына канааттанбай калган учурум болгон. Мен жогорку ажыратымдылыктагы веб-камера жасоону чечтим. Кийинки бөлүктөр
Чечим кабыл алуу үчүн чайкаңыз: 8 кадам
Чайкоо үчүн чайкоо: Мен чечим кабыл алуучу машинаны түздүм, ал чайкалганда дисктин айланасына жарык чачып, акыры бир тандоого конот. Муну колдонуунун ар кандай жолдору, кайсы тамакты бышыруу керектигин, зериккенди айыктыруу үчүн эмне кылуу керектигин, атүгүл кандай машыгуу керектигин чечиши мүмкүн
Унаа токтотуучу аймактар үчүн чечим: 5 кадам
Унаа токтотуучу жайлар үчүн чечим: Бул долбоор менин командамдын гезит макаласынан алган илхамынын натыйжасы. Макалада унааларын эч кандай унаа токтотуучу жайларга койбогон адамдар жөнүндө сөз болгон. Бул чоң маселеге айланды, анын кесепетинен тыгындар пайда болуп, башкалар үчүн ыңгайсыздык жаралды
Microdrive Madness: Сиздин $ 15 Кошумча Microdrives үчүн чечим: 3 кадам
Microdrive Madness: $ 15 Кошумча микродрайвдарыңыз үчүн чечим: iPod жаңыртуу боюнча менин башка көрсөтмөмдөн келгендер үчүн, кош келиңиз! Сиз эски mp3 ойноткучтардан, iPod, камералардан ж.б. алынган микродрайвдарыңыз менен эмне кылаарыңызды билбейсизби? .. Мен үчүн эң сонун чечим бар