سير عمل تصحيح أخطاء البرامج الثابتة لـ USB: من فشل التعداد إلى الأدلة

سير عمل عملي لتصحيح أخطاء البرامج الثابتة لـ USB للمهندسين الذين يحتاجون إلى أدلة الواصفات ونقطة النهاية ونقل التحكم والالتقاط قبل تغيير الكود.

USB, البرامج الثابتة, تصحيح الأخطاء, Bus Scope, سير العمل

أخطاء البرامج الثابتة لـ USB مكلفة لأن العرض المرئي عادة غامض: "يقول Windows إن طلب واصف الجهاز فشل، وتسجل Linux حلقة إعادة ضبط، ويبدو تقرير HID خاطئًا، أو تتوقف نقطة نهاية bulk تحت الحمل. يعطي Bus Scope فرق البرامج الثابتة سير عمل محلي لجمع أدلة على مستوى الناقل قبل تعديل الواصفات، أو سلوك نقطة النهاية، أو افتراضات برنامج تشغيل المضيف." هذه الصفحة المركزية هي نقطة البداية لتصحيح أخطاء USB مع Bus Scope. استخدمها لتقرر ما يجب التقاطه أولاً، وحد الفشل الذي يهم، ومتى يكون محلل USB البرمجي كافيًا قبل إرسال الحالة إلى مختبر الأجهزة.

سير العمل

الخطوة ما يجب إثباته الأدلة التي يجب جمعها
1. تأكيد التعداد هل طلب المضيف الواصفات وقبلها؟ أدلة الجهاز، والتهيئة، والواجهة، ونقطة النهاية، وHID، وCDC، وBOS، والسلسلة، والحالة
2. فحص نقطة النهاية الصفرية هل أكملت عمليات نقل التحكم بنظافة؟ حقول حزمة الإعداد، طول مرحلة البيانات، مرحلة الحالة، توقف، مهلة، وسلوك ZLP
3. التحقق من سلوك الفئة هل سلوك الفئة المُعلن متسق مع الحركة؟ تقارير HID، ترميز خط CDC، BOT تخزين الكتلة، إعدادات UVC البديلة، أو طلبات البائع
4. عزل توقيت النقل هل نقطة النهاية بطيئة، متوقفة، أو محملة بشكل زائد؟ مهلات Bulk، استطلاع interrupt، فجوات isochronous، bInterval، حجم الحزمة الأقصى، وتغيرات عرض النطاق الترددي
5. حفظ الحالة هل يمكن لمهندس آخر إعادة فتح نفس الأدلة؟ جلسة Bus Scope .bscope، تصدير التقرير، وملاحظات مركزة

ابدأ بأدلة التعداد

عندما يفشل الجهاز قبل تحميل برنامج التشغيل، ابدأ بـ فشل تعداد جهاز USB. تغطي تلك المقالة نقاط الالتقاط الأولى: إعادة التعيين، وتعيين العنوان، وقراءات الواصفات، واختيار التهيئة، والحد بين استجابة البرامج الثابتة وسياسة المضيف.

إذا أبلغ Windows عن Code 43 أو "فشل طلب واصف الجهاز"، اقرن سير عمل التعداد مع فشل طلب واصف جهاز USB في Windows. السؤال المفيد ليس ما إذا كان Windows غير راضٍ. إنه ما إذا كان الناقل يُظهر واصفًا قصيرًا، أو طولًا سيئًا، أو إعادة ضبط متكررة، أو عدم استجابة على الإطلاق.

افحص نقطة النهاية الصفرية قبل تغيير البرامج الثابتة

نقطة النهاية الصفرية هي حيث تظهر العديد من أخطاء البرامج الثابتة. استخدم تصحيح أخطاء توقف نقل التحكم في USB عندما يفشل طلب أثناء الإعداد أو البيانات أو الحالة. استخدم تصحيح أخطاء مرحلة الحالة لنقل التحكم في USB عندما تبدو البيانات صحيحة لكن الإكمال لا يستقر.

يحافظ Bus Scope على حقول الإعداد والاتجاه ونوع الطلب والقيمة والفهرس والطول والبايتات الخام والحالة ومخرجات مفكك التشفير في نفس العرض المحلي. هذا هو الفرق بين "جرب بناء برامج ثابتة آخر" و"المضيف طلب 64 بايتًا، أعاد الجهاز 18، ثم أوقف الطلب التالي".

اربط الواصفات بسلوك الفئة

الواصفات ليست أعمالًا ورقية. تتحكم في برنامج التشغيل الذي يربط وما يعتقد المضيف أن الجهاز يمكنه فعله. لأجهزة HID وCDC، اقرأ تصحيح أخطاء واصفات USB لأجهزة HID وCDC، وتصحيح أخطاء تقرير ميزة HID في USB، وتصحيح أخطاء USB CDC ACM التسلسلي.

تحتاج الأجهزة المركبة إلى اهتمام خاص. يوضح تصحيح أخطاء الجهاز المركب USB وربط برنامج تشغيل خاطئ للجهاز المركب USB لماذا يمكن لأرقام الواجهة وIAD ورموز الفئة وتخطيط نقطة النهاية أن يغيرا نتيجة برنامج التشغيل قبل تشغيل كود التطبيق.

تحقق من توقيت نقطة النهاية والاستعادة

إذا نجح التعداد لكن عمليات النقل تفشل لاحقًا، انتقل إلى أدلة نقطة النهاية. توقف نقطة نهاية USB ومهلة نقل Bulk واستعادة توقف نقطة نهاية USB هي التوقف الأول لـ CLEAR_FEATURE، والأنابيب المجمّدة المتوقفة، وحلقات إعادة المحاولة.

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

اختر مسار المحلل الصحيح

Bus Scope هو المحلل البرمجي المركّز لعمل البرامج الثابتة وبرامج التشغيل الروتيني. توضح مقارنة برامج محلل USB، وBus Scope مقابل Wireshark وUSBPcap، ومحلل USB البرمجي مقابل محلل الأجهزة متى تبقى في البرمجيات ومتى تتصاعد إلى أجهزة الطبقة الفيزيائية.

إذا كان فريقك يستخدم Wireshark بالفعل، فإن مرشحات USB في Wireshark مع USBPcap وusbmon لا يزال مفيدًا. لا يتطلب Bus Scope منك التخلص من معرفة الحزم؛ يعطي بنية USB أولاً حول الأدلة التي تحتاجها فرق البرامج الثابتة كل يوم.

الإعداد والخطوة التالية

استخدم مساعدة اتصال Bus Scope لبدء التقاط محلي وإعداد التقاط لمنصة Bus Scope لتأكيد جاهزية Linux usbmon أو Windows USBPcap. لمجموعة المحتوى الأوسع، افتح فهرس مدونة Bus Scope.

الخطوات التالية