সুচিপত্র:

ESP32 - সার্কিট ডিবাগের জন্য সস্তা সমাধান: 5 টি ধাপ
ESP32 - সার্কিট ডিবাগের জন্য সস্তা সমাধান: 5 টি ধাপ

ভিডিও: ESP32 - সার্কিট ডিবাগের জন্য সস্তা সমাধান: 5 টি ধাপ

ভিডিও: ESP32 - সার্কিট ডিবাগের জন্য সস্তা সমাধান: 5 টি ধাপ
ভিডিও: ৫০ লাখ টাকার ড্রোনের কি হাল| Dji Drone crash | #travel #shorts #Eat&Travelwithmamun 2024, জুলাই
Anonim
ESP32 - সার্কিট ডিবাগের জন্য সস্তা সমাধান
ESP32 - সার্কিট ডিবাগের জন্য সস্তা সমাধান

হ্যালো, এই নির্দেশনায় বর্ণনা করা হয়েছে কিভাবে FTDI 2232HL চিপের উপর ভিত্তি করে সস্তা JTAG অ্যাডাপ্টার সেট করা যায়, ভিজ্যুয়াল কোড এবং আরডুইনো অ্যাডন সহ।

- এফটিডিআই 2232 এইচএল মডিউল ইউএসবি সংযোগকারীর সাথে ইবেতে 8 ডলার থেকে শুরু হচ্ছে এবং কোনও অর্থ প্রদানের সফ্টওয়্যারের প্রয়োজন নেই। এটি শখের জন্য দুর্দান্ত সমাধান যারা সমস্ত JTAG অ্যাডাপ্টারের জন্য $ 50+ খরচ করতে চান না।

- এই অ্যাডাপ্টারটি ESP8266, ARM, AVR এবং অন্যান্য অনেক প্ল্যাটফর্মের ডিবাগিংয়ের জন্য ব্যবহার করা যেতে পারে। কিছু কনফিগারেশন টার্গেট প্ল্যাটফর্মের উপর নির্ভর করে, এই নির্দেশনা শুধুমাত্র ESP32 এর জন্য সেটআপ কভার করে।

- যদি আপনি ইতিমধ্যে কিছু JTAG অ্যাডাপ্টারের মালিক হন, তাহলে আপনি এটি ব্যবহার করতে পারেন যখন এটি openOCD দ্বারা সমর্থিত হয়, শুধু আপনার jtag অ্যাডাপ্টারের প্রকারের উপর ভিত্তি করে বিভিন্ন কনফিগারেশন ফাইল দিয়ে openocd শুরু করুন।

- platform.io আপনার জন্য সেটআপ সহজ করতে পারে, কিন্তু ডিবাগ শুধুমাত্র প্রদত্ত পেশাদার সংস্করণে সমর্থিত।

- অধিকাংশ ESP32 মডিউলের সাথে কাজ করে। (উদাহরণস্বরূপ সস্তা wemos lolin 32)

- এই jtag অ্যাডাপ্টারটি লিনাক্সের সাথেও কাজ করা উচিত, কিন্তু আমি ব্যক্তিগতভাবে এটি পরীক্ষা করিনি।

ধাপ 1: সফ্টওয়্যার অনুষঙ্গ

Arduino IDE সংস্করণ 1.8 বা নতুন। উইন্ডোজ স্টোর সংস্করণ সমর্থিত নয়। আপনাকে ক্লাসিক ইনস্টলার সংস্করণ ব্যবহার করতে হবে যা অফিসিয়াল Arduino পৃষ্ঠা https://www.arduino.cc থেকে ডাউনলোড করা যাবে

মাইক্রোসফট ভিজ্যুয়াল স্টুডিও কোড

ভিজ্যুয়াল স্টুডিও কোডের জন্য এই অ্যাডঅনগুলি বাধ্যতামূলক

  • Arduino
  • নেটিভ ডিবাগ

আমি এই অ্যাডঅনটি ইনস্টল করার পরামর্শ দিচ্ছি যা C/C ++ এর জন্য ইন্টেলিসেন্স সক্ষম করে

সি/সি ++

এই ম্যানুয়ালটিতে আমি 2 টি ওয়ার্কিং ফোল্ডার ব্যবহার করব:

D: / devel / ESP32 / tools here - এখানে আমি সব টুলস রেখেছি

C: / Users / xxxxx / Documents / Arduino / YourProject / - এটি স্কেচ সহ ফোল্ডার

আপনি যদি চান তবে আপনার ফাইল অন্য কোথাও রাখতে পারেন, দয়া করে আপনার প্রকৃত পথের সাথে সমস্ত রেফারেন্সি আপডেট করতে ভুলবেন না।

ধাপ 2: ড্রাইভার ইনস্টল এবং কনফিগারেশন

ড্রাইভার ইনস্টল এবং কনফিগারেশন
ড্রাইভার ইনস্টল এবং কনফিগারেশন
ড্রাইভার ইনস্টল এবং কনফিগারেশন
ড্রাইভার ইনস্টল এবং কনফিগারেশন
ড্রাইভার ইনস্টল এবং কনফিগারেশন
ড্রাইভার ইনস্টল এবং কনফিগারেশন

এমনকি যদি উইন্ডোজ স্বয়ংক্রিয়ভাবে FT2232 সনাক্ত করে, উইন্ডোজ ডিফল্ট ড্রাইভারগুলি সমস্ত অগ্রিম বৈশিষ্ট্যগুলির জন্য যথেষ্ট নয় এবং FTDI সাইট https://www.ftdichip.com/Drivers/VCP.htm থেকে ড্রাইভার ডাউনলোড এবং ইনস্টল করা প্রয়োজন।

যখন সঠিক ড্রাইভার ইনস্টল করা হয়, আপনার ডিভাইস ম্যানেজারে আপনার FT2232 মডিউলটি কেবল 2 টি সিরিয়াল পোর্ট নয় বরং "ইউএসবি সিরিয়াল কনভার্টার এ" এবং "ইউএসবি সিরিয়াল কনভার্টার বি" হিসাবে দেখা উচিত

দ্বিতীয় ধাপ হল আমাদের কনভার্টারের একটি চ্যানেলের জন্য ড্রাইভার পরিবর্তন করা। Http://zadig.akeo.ie/ থেকে zadig টুল ডাউনলোড করুন। যদি আমি সঠিকভাবে বুঝতে পারি এই টুলটি WinUSB ড্রাইভারকে FTDI ডিভাইসে লিঙ্ক করে যা openOCD এবং USB ডিভাইসের মধ্যে নিম্ন স্তরের যোগাযোগ সক্ষম করে।

জ্যাডিগ টুলে, মেনু "বিকল্পগুলি" এ "সমস্ত ডিভাইস দেখান" চেক করুন, তারপরে আপনার উপলব্ধ ডিভাইসগুলির তালিকায় আপনার অ্যাডাপ্টারটি দেখা উচিত। "Dual RS232-HS (Interface 0)" নির্বাচন করুন তারপর প্রতিস্থাপন ড্রাইভার "WinUSB v6.1.xxxx" নির্বাচন করুন এবং শেষ পর্যন্ত প্রতিস্থাপন ড্রাইভার বাটনে ক্লিক করুন।

যখন আপনি আপনার অ্যাডাপ্টারকে আপনার কম্পিউটারের বিভিন্ন USB পোর্টের সাথে সংযুক্ত করেন, তখন আবার zadig টুলের মাধ্যমে ড্রাইভার সেটিংস পরিবর্তন করা আবশ্যক, অন্যদিকে openOCD আপনার অ্যাডাপ্টার খুঁজে পাবে না।

ধাপ 3: OpenOCD, Toolchain এবং Gdb

OpenOCD, Toolchain এবং Gdb
OpenOCD, Toolchain এবং Gdb

1. ওপেন ওসিডি হল সার্কিট ডিবাগিংয়ের টুল, একদিকে এটি চিপে কথা বলে অন্যদিকে এটি জিডিবি সার্ভার প্রদান করে যেখানে ডিবাগার (ক্লায়েন্ট) সংযোগ করতে পারে। 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 8000" মানে 8Mhz।

ডিফল্ট 20 মেগাহার্টজ এবং যদি আপনি দীর্ঘ জাম্পার তার বা ব্রেডবোর্ড ব্যবহার করেন তবে এটি খুব বেশি হতে পারে। আমি 1Mhz থেকে শুরু করার পরামর্শ দিচ্ছি এবং যদি সবকিছু ঠিক থাকে তবে উচ্চ গতিতে যান, আমার জন্য 8Mhz নির্ভরযোগ্যভাবে কাজ করে।

minimodule.cfg

এই ফাইলের সম্পূর্ণ পথ হল: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

যদি আমি সঠিকভাবে বুঝতে পারি, আসল মিনিমোডুলটি FTDI দ্বারা নির্মিত FT 2232 এর সাথে অতিরিক্ত দামযুক্ত ব্রেকআউট বোর্ড এবং বাজারে পাওয়া যায় প্রকৃত মিনিমোডুল এবং সস্তা মডিউল বা বেয়ার চিপের মধ্যে পার্থক্য হল ডিফল্ট ইউএসবি বর্ণনা। ওপেন ওসিডি ডিভাইসের বিবরণের উপর ভিত্তি করে জেটিএগ অ্যাডাপ্টারের সন্ধান করছে, এছাড়াও লেআউট ইনিট সমন্বয় করা প্রয়োজন।

সস্তা মডিউলের বর্ণনা আছে "ডুয়াল আরএস 232-এইচএস"। আপনি যদি আপনার ডিভাইসের বিবরণ সম্পর্কে নিশ্চিত না হন, তাহলে আপনি ডিভাইস ম্যানেজারে -> ডিভাইসের বৈশিষ্ট্য -> ট্যাবের বিবরণ -> সম্পত্তির মান "বাসের রিপোর্ট করা ডিভাইসের বিবরণ" এ চেক করতে পারেন

Minimodule.cfg এর বিষয়বস্তু নীচের উদাহরণের মত হওয়া উচিত, লাইন দিয়ে শুরু হয় # মুছে ফেলা যায়।

ইন্টারফেস ftdi #ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "ডুয়াল RS232 -HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000s 0d000_stx_st0_s0_s0_s0_s0_s0_s0_s0_s0_s0_s0_s0

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 থেকে কাজ করার জন্য ডিবাগের জন্য গুরুত্বপূর্ণ। বেয়ার টুলচেন এসপ্রেসিফ সাইট থেকে ডাউনলোড করা যায়, বিভাগ "বিকল্প সেটআপ"

ধাপ 4: ওয়্যারিং এবং প্রথম পরীক্ষা

ওয়্যারিং এবং প্রথম পরীক্ষা
ওয়্যারিং এবং প্রথম পরীক্ষা
ওয়্যারিং এবং প্রথম পরীক্ষা
ওয়্যারিং এবং প্রথম পরীক্ষা

ESP এর সাথে FT2322 মডিউল সংযুক্ত করুন। আমি যতটা সম্ভব সংক্ষিপ্ত তারের ব্যবহার করার পরামর্শ দিচ্ছি যদি আপনি 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 interface/ftdi/minimodule.cfg -f বোর্ড /esp-wroom-32.cfg

এটি ওপেনওসিডি শুরু করবে এবং যদি সবকিছু ঠিক থাকে তবে আপনাকে কমান্ড লাইন আউটপুটে দেখতে হবে নিম্নলিখিত লাইনগুলি রয়েছে:

তথ্য: ক্লক স্পীড 8000 kHz তথ্য mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)

এছাড়াও ওপেনকড প্রক্রিয়া টিসিপি পোর্ট 3333 এ শুনবে

নতুন টার্মিনাল খুলুন এবং কমান্ড লাইন অনুসরণ করে জিডিবি ক্লায়েন্ট শুরু করুন

D: / devel / ESP32 / সরঞ্জাম / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe

একটি সেকেন্ড অপেক্ষা করুন এবং যখন জিডিবি টার্মিনাল প্রস্তুত হবে তখন নিম্নলিখিত কমান্ডগুলি একে একে লিখুন

রিমোট টার্গেট: 3333mon রিসেট হোল্ট অবিরত

প্রথম কমান্ড ওপেনকিড ডিবাগ সার্ভারের সাথে সংযোগ খুলে দেয়, দ্বিতীয়টি ইএসপি -তে প্রোগ্রাম এক্সিকিউশন বন্ধ করবে এবং এলইডি ঝলকানো বন্ধ করবে, প্রোগ্রাম এক্সিকিউশন পুনরুদ্ধার চালিয়ে যাবে এবং এলইডি আবার ঝলকানো শুরু করবে।

ধাপ 5: ভিসুয়াল স্টুডিও কোডে ডিবাগ কনফিগারেশন যুক্ত করুন

ভিসুয়াল স্টুডিও কোডে ডিবাগ কনফিগারেশন যুক্ত করুন
ভিসুয়াল স্টুডিও কোডে ডিবাগ কনফিগারেশন যুক্ত করুন

আমি মনে করি যে আপনি ইতিমধ্যে ভিজ্যুয়াল স্টুডিও কোড এবং arduino অ্যাডন সঠিকভাবে কনফিগার করেছেন এবং আপনি যাচাই করে বোর্ডে আপনার স্কেচ আপলোড করতে পারেন। যদি না হয়, দয়া করে ভিজ্যুয়াল স্টুডিও কোড এবং আরডুইনো কনফিগার করার কিছু নির্দেশনা দেখুন, উদাহরণস্বরূপ এই পৃষ্ঠায়

বিল্ড আউটপুট ফোল্ডার নির্দিষ্ট করার জন্য ডিবাগ এর প্রয়োজনীয় কাজ করা। আপনার স্কেচ ফোল্ডারের নিচে (লুকানো) ফোল্ডার.vscode আছে, যেখানে ফাইল arduino.json আছে। এই ফাইলটিতে নিম্নলিখিত লাইন যোগ করুন:

"আউটপুট": "বিল্ড আউটপুট/"

যাচাই করুন বা আপলোড করুন এবং আবার আপনার স্কেচ ফোল্ডারটি পরীক্ষা করুন, সেখানে নতুন বিল্ড আউটপুট ফোল্ডার থাকা উচিত এবং এর ভিতরে.elf এক্সটেনশন সহ ফাইলটি থাকা উচিত। এলফ ফাইল ডিবাগের জন্য গুরুত্বপূর্ণ।

ডিবাগার সেটিংস ফাইল launch.json এ আছে। নিম্নলিখিত বিষয়বস্তু দিয়ে এই ফাইলটি তৈরি করুন, অথবা আপনি সংযুক্ত উদাহরণ প্রকল্প থেকে এই ফাইলটি অনুলিপি করতে পারেন। লাইন ২ adjust সামঞ্জস্য করতে ভুলবেন না এবং আপনার প্রকল্প.elf ফাইলে সঠিক পথ নির্ধারণ করুন।

{// সম্ভাব্য বৈশিষ্ট্য সম্পর্কে জানতে IntelliSense ব্যবহার করুন। // বিদ্যমান বৈশিষ্ট্যের বিবরণ দেখতে হভার করুন। // আরো তথ্যের জন্য, দেখুন: https://go.microsoft.com/fwlink/?linkid=830387 "সংস্করণ": "0.2.0", "কনফিগারেশন": [{"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 /# {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": সত্য, "serverStarted": "তথ্য \: [w / d \।]*: / হার্ডওয়্যার "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}

কীভাবে ডিবাগিং শুরু করবেন:

  1. কমপ্লাই করুন এবং বোর্ডে আপনার স্কেচ আপলোড করুন
  2. পরামিতি দিয়ে openOCD শুরু করুন
  3. যেখানে আপনি চান কোডে ব্রেকপয়েন্ট সেট করুন
  4. সমস্ত ব্রেকপয়েন্ট সেট করার পরে, নিশ্চিত করুন যে আপনি আপনার প্রকল্পের প্রধান.ino ফাইলটি খুলছেন। (অথবা launch.json এ.elf ফাইল হার্ডকোড পাথ)
  5. বনাম কোডে ডিবাগ প্যানেল খুলুন (Ctrl + Shift + D)
  6. "Arduino-GDB-openOCD" ডিবাগার নির্বাচন করুন, শুধুমাত্র উপলব্ধ হওয়া উচিত।
  7. ডিবাগ শুরু করতে F5 চাপুন

প্রস্তাবিত: