Мазмұны:
- 1 -қадам: Бағдарламалық қамтамасыз етудің талаптары
- 2 -қадам: драйверді орнату және конфигурациялау
- 3 -қадам: OpenOCD, Toolchain және Gdb
- 4 -қадам: Сымдар мен бірінші сынақ
- 5 -қадам: Visual Studio кодына күйін келтіру конфигурациясын қосыңыз
Бейне: ESP32 - Circruit Debug үшін арзан шешім: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Сәлеметсіз бе, бұл нұсқаулықта визуалды коды мен arduino қосымшасы бар FTDI 2232HL чипі негізінде арзан JTAG адаптерін қалай орнату керектігі сипатталған.
- eBay -де 8 доллардан басталатын USB қосқышы бар FTDI 2232HL модулі және ақылы бағдарламалық қамтамасыз ету қажет емес. Бұл кәсіби 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 -ның https://www.arduino.cc ресми сайтынан жүктеуге болатын классикалық орнатушы нұсқасын пайдалануыңыз керек
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» ретінде көресіз.
Екінші қадам - конвертердің бір арнасы үшін драйверді өзгерту. Zadig құралын https://zadig.akeo.ie/ сайтынан жүктеп алыңыз. Егер мен түсінсем, бұл құрал winUSB драйверін FTDI құрылғысына байланыстырады, бұл openOCD мен USB құрылғысы арасында төмен деңгейлі байланыс орнатуға мүмкіндік береді.
Zadig құралында «Параметрлер» мәзірінде «Барлық құрылғыларды көрсету» дегенді тексеріңіз, содан кейін адаптерді қол жетімді құрылғылар тізімінде көруге болады. «Қос RS232-HS (интерфейс 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 сипаттамасы. open 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 ntx20x20b
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 құралдар тізбегін жүктеңіз және орнатыңыз-бұл құралдар тізбегінде кез келген графикалық 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, вер: 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 -те бағдарламаның орындалуын тоқтатады және жарық диоды жыпылықтауын тоқтатады, бағдарламаның орындалуын қалпына келтіруді жалғастырады және жарық диоды қайтадан жыпылықтай бастайды.
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 «нұсқа»: «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 «}, {// динамикалық нұсқа» text «:» 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 файлына арналған қатты код жолы)
- Жөндеу тақтасын қарсы кодта ашу (Ctrl + Shift + D)
- «Arduino-GDB-openOCD» отладчикті таңдаңыз, ол тек қол жетімді болуы керек.
- Жөндеуді бастау үшін F5 пернесін басыңыз
Ұсынылған:
Тұрақсыз аймақтарға арналған шешім: 5 қадам
Автотұрақ жоқ аймақтарға арналған шешім: Бұл жоба менің командамның газеттегі мақаладан алған шабытының нәтижесі. Мақалада көлік құралдарын тұрақсыз аймақтарға қоятын адамдар туралы айтылады. Бұл үлкен мәселеге айналды, ол көлік кептелісі мен басқаларға қолайсыздық әкеледі
Microdrive Madness: $ 15 Сіздің қосымша микродрайвтар үшін шешім: 3 қадам
Microdrive Madness: $ 15 Сіздің қосымша микродрайвтарыңыз үшін шешім: iPod жаңартуы бойынша менің басқа нұсқаулығымнан келгендер үшін қош келдіңіз! Ескі mp3 ойнатқыштардан, iPod -дан, камералардан және тағы басқалардан алынған қосымша микродрайвтармен не істеу керектігін білмейсіз бе?
MP3 кассеталық шешім: 5 қадам
MP3 кассеталық шешім: Сондықтан мен тот басқан магнаның ішінде кассета ойнатқышына жабысып қалдым. Маған әуендер қажет болды, бірақ кассета адаптерінен MP3 ойнатқышына дейінгі консольді бұзатын кабельден жалықтым. Маған таңқаларлық шешім қажет болды
Басқа үшінші қолмен шешім: 6 қадам
Үшінші қолдан жасалған тағы бір шешім: бұл жаңалық емес. Біраз уақыттан бері мен үшінші қолмен жұмыс жасауды жоспарладым, сондықтан мен оны ойлап таптым … Сіз мұны көпфункционалды үшінші қол деп айта аласыз: кейбір сөздер қате жазылса, кешіріңіз, ағылшын тілі-менің екінші тілім
Шешім қабылдаушы 2000: 4 қадам
Шешім қабылдаушы 2000: шешім қабылдауда қиындықтар бар ма? Өмірді өзгертетін шешімдер кездейсоқтыққа қалды ма? Енді Decision Maker 2000 көмегімен бұл оңай! Сіз және сіздің достарыңыз маңызды шешімдерді күш -жігерсіз қабылдай алады. Decision Maker 2000 маңызды сұрақтарға жауап берсін