جدول المحتويات:

ESP32 - حل رخيص في تصحيح أخطاء Circruit: 5 خطوات
ESP32 - حل رخيص في تصحيح أخطاء Circruit: 5 خطوات

فيديو: ESP32 - حل رخيص في تصحيح أخطاء Circruit: 5 خطوات

فيديو: ESP32 - حل رخيص في تصحيح أخطاء Circruit: 5 خطوات
فيديو: انفجار غاز في عراق😔🔥 2024, يوليو
Anonim
ESP32 - حل رخيص في تصحيح أخطاء Circruit
ESP32 - حل رخيص في تصحيح أخطاء Circruit

مرحبًا ، في هذا الدليل ، تم وصف كيفية إعداد محول JTAG الرخيص استنادًا إلى شريحة FTDI 2232HL ، مع الكود المرئي وملحق اردوينو.

- وحدة FTDI 2232HL مع موصل USB تبدأ من 8 دولارات على موقع ئي باي ولا يلزم وجود برامج مدفوعة. هذا حل رائع للهواة الذين لا يرغبون في إنفاق 50 دولارًا + على محول JTAG الاحترافي.

- يمكن استخدام هذا المحول لتصحيح أخطاء الأنظمة الأساسية الأخرى مثل ESP8266 و ARM و AVR وغيرها الكثير. يعتمد بعض التكوين على النظام الأساسي المستهدف ، وتغطي هذه التعليمات فقط الإعداد لـ ESP32.

- إذا كنت تمتلك بالفعل محول JTAG ، فيمكنك استخدامه عندما يكون مدعومًا بواسطة openOCD ، فقط ابدأ openocd بملف تكوين مختلف بناءً على نوع محول jtag.

- يمكن لـ platform.io أن تجعل الإعداد أسهل بالنسبة لك ، ولكن التصحيح مدعوم فقط في الإصدار الاحترافي المدفوع.

- يعمل مع معظم وحدات ESP32. (على سبيل المثال wemos lolin 32 الرخيص)

- يجب أن يعمل محول jtag مع لينكس أيضًا ، لكنني شخصياً لم أختبره.

الخطوة 1: مزايا البرنامج

Arduino IDE الإصدار 1.8 أو أحدث. إصدار متجر Windows غير مدعوم. يجب عليك استخدام إصدار المثبت الكلاسيكي الذي يمكن تنزيله من صفحة Arduino الرسمية

كود استوديو مايكروسوفت المرئي

هذه الإضافات لكود الاستوديو المرئي إلزامية

  • اردوينو
  • التصحيح الأصلي

أوصي أيضًا بتثبيت هذا الملحق الذي يمكّن intelisense لـ C / C ++

C / C ++

في هذا الدليل ، سأستخدم مجلدين للعمل:

D: / devel / ESP32 / tools / - لقد وضعت هنا جميع الأدوات

C: / Users / xxxxx / Documents / Arduino / YourProject / - هذا هو المجلد الذي يحتوي على رسم

يمكنك وضع ملفاتك في أي مكان آخر إذا أردت ، فقط من فضلك لا تنس تحديث جميع المراجع بمسارك الفعلي.

الخطوة 2: تثبيت برنامج التشغيل وتكوينه

تثبيت وتكوين برنامج التشغيل
تثبيت وتكوين برنامج التشغيل
تثبيت وتكوين برنامج التشغيل
تثبيت وتكوين برنامج التشغيل
تثبيت وتكوين برنامج التشغيل
تثبيت وتكوين برنامج التشغيل

حتى إذا اكتشف Windows تلقائيًا FT2232 افتراضيًا ، فإن برامج تشغيل Windows الافتراضية ليست كافية لجميع الميزات المتقدمة ومن الضروري تنزيل برنامج التشغيل وتثبيته من موقع FTDI

عند تثبيت برنامج التشغيل الصحيح ، يجب أن تشاهد وحدة FT2232 في مدير الجهاز ليس فقط كمنفذين تسلسليين ولكن أيضًا كـ "محول USB التسلسلي A" و "محول USB التسلسلي B"

الخطوة الثانية هي تغيير برنامج التشغيل لقناة واحدة من المحول الخاص بنا. قم بتنزيل أداة zadig من https://zadig.akeo.ie/. إذا فهمت ارتباط هذه الأداة بربط برنامج تشغيل 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. يعد Open OCD أداة لتصحيح أخطاء Circruit ، فمن جانب يتحدث إلى رقاقة على الجانب الآخر ، فإنه يوفر خادم gdb حيث يمكن لمصحح الأخطاء (العميل) الاتصال. قم بتنزيل openOCD لـ ESP32 من https://github.com/espressif/openocd-esp32/releases وقم بفك ضغطه إلى المجلد D: / devel / ESP32 / tools

2. تحرير ملفات تكوين OpenOCD:

esp-wroom-32.cfg

المسار الكامل لهذا الملف هو:

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg

في هذا الملف يمكنك ضبط سرعة الاتصال عن طريق تغيير المعلمة "adaptor_khz". على سبيل المثال ، "adaptor_khz 8000" يعني 8 ميجا هرتز.

الافتراضي هو 20 ميجا هرتز وقد يكون مرتفعًا جدًا إذا كنت تستخدم أسلاك توصيل أطول أو لوح توصيل. أوصي بالبدء بسرعة 1 ميجا هرتز ، وإذا كان كل شيء على ما يرام ، فانتقل إلى سرعة أعلى ، فبالنسبة لي تعمل 8 ميجا هرتز بشكل موثوق.

minimodule.cfg

المسار الكامل لهذا الملف هو: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

إذا فهمت بشكل صحيح ، فإن الوحدة الصغيرة الأصلية هي لوحة فرامل باهظة الثمن مع FT 2232 المصنعة من قبل FTDI والفرق الوحيد بين الوحدة الصغيرة الأصلية والوحدة الرخيصة أو الرقاقة العارية المتوفرة في السوق هو وصف USB الافتراضي. يبحث OCD المفتوح عن محول jtag استنادًا إلى وصف الجهاز ، كما يجب تعديل تنسيق الحرف الأول.

وحدة رخيصة لها وصف "مزدوج 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 0x0008000b x20

esp32.cfg

المسار الكامل لهذا الملف هو:

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg

قم بإلحاق السطرين التاليين بنهاية esp32.cfg. بدون هذا التعديل ، لن تعمل إضافة نقاط الفرامل.

#Force hw نقاط التوقف. بمجرد أن يكون لدينا خريطة ذاكرة ، يمكننا أيضًا السماح للبرنامج bps.gdb_breakpoint_override بجد

3. قم بتنزيل وتثبيت سلسلة الأدوات xtensa-esp32-elf - تحتوي سلسلة الأدوات هذه على مصحح أخطاء سطر الأوامر (عميل gdb) وهو أمر حيوي للحصول على تصحيح أخطاء عملي من أي IDE رسومي. يمكن تنزيل Bare toolchain من موقع 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 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

افتح Terminal وابدأ عميل سطر الأوامر gdb باتباع الأمر comand

D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe

انتظر ثانية وعندما تصبح محطة gdb جاهزة ، اكتب الأوامر واحدة تلو الأخرى

الهدف البعيد: 3333mon إعادة إيقاف المتابعة

يفتح الأمر الأول الاتصال بخادم تصحيح أخطاء openocd ، وسيوقف تنفيذ البرنامج الثاني على ESP ويجب أن يتوقف مؤشر LED عن الوميض ، ويستمر في استعادة تنفيذ البرنامج ويجب أن يبدأ مؤشر LED في الوميض مرة أخرى.

الخطوة 5: إضافة تكوين التصحيح إلى رمز Visual Studio

قم بإضافة تكوين التصحيح إلى رمز Visual Studio
قم بإضافة تكوين التصحيح إلى رمز Visual Studio

أفترض في هذه المرحلة أنك قمت بالفعل بتكوين كود الاستوديو المرئي وملحق اردوينو بشكل وثيق ويمكنك التحقق من الرسم الخاص بك وتحميله على اللوحة. إذا لم يكن كذلك ، يرجى مراجعة بعض التعليمات حول كيفية تكوين كود الاستوديو المرئي واردوينو ، على سبيل المثال في هذه الصفحة

للحصول على التصحيح يعمل ضروريًا لتحديد مجلد إخراج البناء. يوجد تحت مجلد الرسم الخاص بك مجلد (مخفي).vscode ، حيث يوجد ملف arduino.json. أضف إلى هذا الملف السطر التالي:

"الإخراج": "BuildOutput /"

قم بتشغيل التحقق أو التحميل وتحقق من مجلد الرسم مرة أخرى ، يجب أن يكون هناك مجلد BuildOutput جديد وداخله ملف بامتداد.elf. يعد ملف elf أمرًا حيويًا للتصحيح.

إعدادات مصحح الأخطاء في ملف launch.json. قم بإنشاء هذا الملف بالمحتوى التالي ، أو يمكنك نسخ هذا الملف من مثال مشروع مرفق. لا تنس ضبط السطر 26 وتحديد المسار الصحيح لملف مشروعك.

{// استخدم 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 /${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 \.] *: / Hardware "،" launchCompleteCommand ":" exec-continue "،" filterStderr ": true ،" args ": }]}

كيف تبدأ التصحيح:

  1. قم بملء وتحميل الرسم الخاص بك على متن الطائرة
  2. بدء openOCD مع المعلمات
  3. اضبط نقاط الفرامل في الكود حيث تريد
  4. بعد ضبط جميع نقاط الفرامل ، تأكد من فتح ملف.ino الرئيسي لمشروعك. (أو مسار الكود الثابت لملف.elf في launch.json)
  5. افتح لوحة تصحيح الأخطاء في مقابل التعليمات البرمجية (Ctrl + Shift + D)
  6. حدد مصحح الأخطاء "Arduino-GDB-openOCD" ، يجب أن يكون متاحًا فقط.
  7. اضغط على F5 لبدء التصحيح

موصى به: