Სარჩევი:
- ნაბიჯი 1: პროგრამული უზრუნველყოფის მოთხოვნები
- ნაბიჯი 2: დრაივერის დაყენება და კონფიგურაცია
- ნაბიჯი 3: OpenOCD, Toolchain და Gdb
- ნაბიჯი 4: გაყვანილობა და პირველი ტესტი
- ნაბიჯი 5: დაამატეთ გამართვის კონფიგურაცია Visual Studio კოდს
ვიდეო: ESP32 - იაფი გადაწყვეტა Circruit Debug– ში: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
გამარჯობა, ამ ინსტრუქციურად არის აღწერილი, თუ როგორ უნდა შეიქმნას იაფი JTAG ადაპტერი FTDI 2232HL ჩიპზე დაყრდნობით, ვიზუალური კოდით და arduino დამატებით.
- FTDI 2232HL მოდული USB კონექტორით, დაწყებული ebay– დან 8 $ –ით და ფასიანი პროგრამული უზრუნველყოფა არ არის საჭირო. ეს შესანიშნავი გამოსავალია იმ მოყვარულთათვის, რომლებსაც არ სურთ დახარჯონ 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 ვიზუალური სტუდიის კოდი
ვიზუალური სტუდიის კოდის ეს დამატებები სავალდებულოა
- არდუინო
- მშობლიური გამართვა
მე ასევე გირჩევთ დააინსტალიროთ ეს დამატება, რომელიც ინტელექტუალს აძლევს C/C ++ - ს
C/C ++
ამ სახელმძღვანელოში გამოვიყენებ 2 სამუშაო საქაღალდეს:
D: / devel / ESP32 / ინსტრუმენტები / - აქ მე მოვათავსე ყველა ინსტრუმენტი
C: / მომხმარებელი / xxxxx / დოკუმენტები / 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 (ინტერფეისი 0)" შემდეგ შეარჩიეთ დრაივერი "WinUSB v6.1.xxxx" და ბოლოს დააწკაპუნეთ მძღოლის შეცვლის ღილაკზე.
როდესაც თქვენ ადაპტერს აერთებთ კომპიუტერის სხვადასხვა USB პორტს, აუცილებელია დრაივერის პარამეტრების შეცვლა zadig ინსტრუმენტის საშუალებით, წინააღმდეგ შემთხვევაში openOCD ვერ იპოვის თქვენს ადაპტერს.
ნაბიჯი 3: OpenOCD, Toolchain და Gdb
1. ღია OCD არის ინსტრუმენტი ცირკულაციის გამართვისთვის, ერთის მხრივ ის საუბრობს ჩიპზე, მეორე მხრივ ის იძლევა gdb სერვერს, სადაც შეიძლება დაკავშირება გამართვის (კლიენტის) საშუალებით. ჩამოტვირთეთ openOCD ESP32– ისთვის https://github.com/espressif/openocd-esp32/releases და გახსენით იგი საქაღალდეში D: / devel / ESP32 / ინსტრუმენტები
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 MHz.
ნაგულისხმევი არის 20 მჰც და შეიძლება ძალიან მაღალი იყოს, თუ თქვენ იყენებთ უფრო გრძელი მხტუნავ მავთულხლართებს ან დაფაზე. მე გირჩევთ დაიწყოთ 1 მჰც სიხშირით და თუ ყველაფერი რიგზეა, გადადით მაღალ სიჩქარეზე, ჩემთვის 8 მჰც საიმედოდ მუშაობს.
მინიმოდული. cfg
ამ ფაილის სრული გზაა: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
თუ სწორად მესმის, ნამდვილი მინიმოდული არის FTDI– ის მიერ წარმოებული FT 2232 – ით გადაფასებული სამუხრუჭე დაფა და ერთადერთი განსხვავება ნამდვილ მინიმოდულსა და იაფ მოდულს ან ბაზარზე არსებულ შიფს შორის არის ნაგულისხმევი 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_inout 0x0008i
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 ინსტრუმენტთა ქსელი-ეს ინსტრუმენტთა ჯაჭვი შეიცავს ბრძანების ხაზის გამშლელს (gdb კლიენტს), რომელიც აუცილებელია ნებისმიერი გრაფიკული IDE– დან მუშაობის გამართვისთვის. შიშველი ინსტრუმენტთა ქსელის ჩამოტვირთვა შესაძლებელია espressif საიტიდან, განყოფილება "ალტერნატიული დაყენება"
ნაბიჯი 4: გაყვანილობა და პირველი ტესტი
შეაერთეთ FT2322 მოდული ESP– თან. მე გირჩევთ გამოიყენოთ რაც შეიძლება მოკლე მავთულები. თუ JTAG– ში ახალი ხართ, არ უნდა დაგვავიწყდეს, რომ ადაპტერის TDI გადადის ჩიპის TDI– ზე, ასევე ადაპტერის TDO წავა ჩიპის TDO– ზე. JTAG მონაცემთა ხაზები არ არის გადაკვეთილი, როგორც Rx/Tx uart!
შემდეგი ტესტისთვის გირჩევთ ატვირთოთ მოციმციმე მაგალითის ესკიზი ან სხვა ესკიზი, რომელიც შეიძლება მიუთითებდეს პროცესორის გაშვებაზე თუ არა 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 დაფა /esp-wroom-32.cfg
ეს დაიწყება openOCD და თუ ყველაფერი კარგად არის, თქვენ უნდა ნახოთ ბრძანების ხაზში, რომ გამომავალი შეიცავს შემდეგ სტრიქონებს:
ინფორმაცია: საათის სიჩქარე 8000 kHz ინფორმაცია: 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 გადატვირთვის შეჩერება გრძელდება
პირველი ბრძანება ხსნის კავშირს openocd გამართვის სერვერთან, მეორე შეაჩერებს პროგრამის შესრულებას ESP– ზე და LED უნდა შეწყვიტოს მოციმციმე, გააგრძელოს პროგრამის შესრულების აღდგენა და LED კვლავ დაიწყოს მოციმციმე.
ნაბიჯი 5: დაამატეთ გამართვის კონფიგურაცია Visual Studio კოდს
მე ვვარაუდობ, რომ თქვენ უკვე გაქვთ კონფიგურირებული ვიზუალური სტუდიის კოდი და arduino addon სწორად და შეგიძლიათ გადაამოწმოთ და ატვირთოთ ესკიზი დაფაზე. თუ არა, გთხოვთ გადაამოწმოთ ინსტრუქცია ვიზუალური სტუდიის კოდისა და არდუინოს კონფიგურაციისთვის, მაგალითად ამ გვერდზე
გამართვის დასაწყებად საჭიროა მიუთითოთ გამომავალი საქაღალდის მითითება. თქვენი ესკიზის საქაღალდის ქვეშ არის (ფარული) საქაღალდე.vscode, სადაც არის ფაილი arduino.json. დაამატეთ ამ ფაილს შემდეგი სტრიქონი:
"output": "BuildOutput/"
გაუშვით გადაამოწმეთ ან ატვირთეთ და კვლავ შეამოწმეთ ესკიზის საქაღალდე, უნდა იყოს ახალი BuildOutput საქაღალდე და მის შიგნით ფაილი.elf გაფართოებით. elf ფაილი სასიცოცხლოდ მნიშვნელოვანია გამართვისთვის.
გამართვის პარამეტრების ფაილი გაშვების. Json. შექმენით ეს ფაილი შემდეგი შინაარსით, ან შეგიძლიათ დააკოპიროთ ეს თანდართული მაგალითიდან. არ დაგავიწყდეთ 26 -ე ხაზის მორგება და განსაზღვრეთ თქვენი პროექტის.elf ფაილის სწორი გზა.
{// გამოიყენეთ IntelliSense შესაძლო ატრიბუტების გასაგებად. // გადაიტანეთ არსებული ატრიბუტების აღწერილობის სანახავად. // დამატებითი ინფორმაციისთვის ეწვიეთ: https://go.microsoft.com/fwlink/?linkid=830387 "ვერსია": "0.2.0", "კონფიგურაციები": [{"სახელი": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" start "," 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 ":" სამიზნე დისტანციური: 3333 "}, {" text ":" მონტაჟის გადატვირთვის შეჩერება "}, {// დინამიური ვარიანტი" ტექსტი ":" ფაილი c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// სტატიკური ვარიანტი //" 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 \.]*: / აპარატურა "," launCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}
როგორ დავიწყოთ გამართვა:
- შეასრულეთ და ატვირთეთ თქვენი ესკიზი ბორტზე
- დაიწყეთ openOCD პარამეტრებით
- დააყენეთ სამუხრუჭე წერტილები კოდში, სადაც გსურთ
- ყველა სამუხრუჭე წერტილის დაყენების შემდეგ, დარწმუნდით, რომ გახსენით თქვენი პროექტის მთავარი.ino ფაილი. (ან hardcode გზა.elf ფაილში laun.json)
- გახსენით გამართვის პანელი vs კოდი (Ctrl + Shift + D)
- აირჩიეთ "Arduino-GDB-openOCD" დებაგერი, ხელმისაწვდომი უნდა იყოს მხოლოდ.
- დააწკაპუნეთ F5 გამართვის დასაწყებად
გირჩევთ:
მსუბუქი დაბინძურების გადაწყვეტა - არტემიდა: 14 ნაბიჯი
სინათლის დაბინძურების გადაწყვეტა - არტემიდა: სინათლის დაბინძურება არის ის, რაც გავლენას ახდენს ყველა ჩვენგანზე მთელს მსოფლიოში. მას შემდეგ, რაც ნათურა გამოიგონეს, სინათლე უფრო პოპულარული გახდა და სპეციალურად გამოიყენებოდა ისეთ დიდ ქალაქებში, როგორიცაა ნიუ იორკი და ჩიკაგო. ყველა ამ შუქს შეუძლია იმოქმედოს
IOT გადაწყვეტა საზიარო ველოსიპედისთვის: 6 ნაბიჯი
IOT გადაწყვეტა გაზიარების ველოსიპედისთვის: გაზიარების ველოსიპედი ძალიან პოპულარულია ჩინეთში ამ დღეებში. ბაზარზე 10 -ზე მეტი ბრენდია გაზიარების ველოსიპედი და “ mobike ” არის ყველაზე ცნობილი, მას ჰყავს 100 მილიონზე მეტი რეგისტრირებული მომხმარებელი და გავრცელდა სხვა ქალაქებშიც
არდუინოს სრული მბრუნავი გადაწყვეტა: 5 ნაბიჯი
Arduino– ს სრული მბრუნავი გადაწყვეტა: მბრუნავი კოდირება არის ელექტრონული პროექტების შემობრუნებადი კონტროლის ღილაკი, რომელიც ხშირად გამოიყენება Arduino– ს ოჯახის მიკროკონტროლებთან ერთად. ისინი შეიძლება გამოყენებულ იქნას პარამეტრების სრულყოფის, მენიუს ნავიგაციის, ეკრანზე ობიექტების გადაადგილების, ნებისმიერი სახის მნიშვნელობების დასადგენად. ისინი ჩვეულებრივი შემცვლელები არიან
ნახეთ LoRa IoTea გადაწყვეტა: 5 ნაბიჯი
ნახე LoRa IoTea გადაწყვეტა: ინფორმაციის შეგროვების ავტომატური სისტემა, რომელიც გამოიყენება ჩაის პლანტაციაში. ეს არის ინტელექტუალური სასოფლო -სამეურნეო ინფორმაციის შეგროვების ნაწილი
ნახეთ IoTea LoRa გადაწყვეტა (განახლება 1811): 5 ნაბიჯი
ნახე IoTea LoRa Solution (განახლება 1811): ინტერნეტი+ პოპულარული კონცეფციაა. ამჯერად ჩვენ ვცადეთ ინტერნეტი პლუს სოფლის მეურნეობა, რათა ჩაის ბაღი გაიზარდოს ინტერნეტით