تنفيذ واجهات برمجة التطبيقات لطبقة المجرّد الخاصة بالمنصّة

عرض المصدر على GitHub

لا ترتبط Openسلسلة بنظام التشغيل أو النظام الأساسي، ولكن بطبقة تجريد الأنظمة الأساسية (PAL) الضيقة. يحدد PAL هذا:

بنية النقل
  • واجهة منبّه لتعيير موقّت لا يتأثر بالمنبّه
  • واجهات الحافلات (UART، SPI) لإيصال رسائل سطر الأوامر (CLI) وSpinn
  • واجهة راديو للاتصالات IEEE 802.15.4-2006
  • إجراءات إعداد GCC الخاصة
  • الإنتروبيا لإنشاء أرقام عشوائية عشوائية
  • خدمة الإعدادات لتخزين الإعدادات غير المتغيرة
  • واجهة التسجيل لتسليم رسائل سجلّ OpenScript
  • إجراءات إعداد النظام الخاصة بكل نظام

يجب تنفيذ كلّ واجهات برمجة التطبيقات استنادًا إلى حزمة دعم الأجهزة (HAL) لملخص تجريد الأجهزة (BSP).

يجب وضع ملفات واجهة برمجة التطبيقات في الأدلة التالية:

النوع الدليل
تنفيذ PAL خاص بالنظام الأساسي /openthread/examples/platforms/platform-name
ملفات العناوين - واجهة برمجة تطبيقات التخزين غير المتغيرة /openthread/examples/platforms/utils
جميع ملفات العناوين الأخرى /openthread/include/openthread/platform
حزمة HAL BSP /openthread/third_party/platform-name

تنبيه

تعريف واجهة برمجة التطبيقات:

/openthread/include/openthread/platform/alarm-milli.h

توفِّر واجهة برمجة تطبيقات المنبّه خدمات أساسية لضبط التوقيت والمنبّه لتنفيذ الموقّت ذي الطبقة العليا.

ويتوفّر نوعان من خدمات المنبّه، وهما:ملّي ثانية وميكرو ثانية. مللي ثانية مطلوب للنظام الأساسي الجديد للجهاز. الميكروفون اختياري.

UART

تعريف واجهة برمجة التطبيقات:

/openthread/examples/platforms/utils/uart.h

تُطبِّق واجهة برمجة تطبيقات UART اتصال المنفذ التسلسلي الأساسي عبر واجهة UART.

على الرغم من أن إضافات OpenCL CLI وNCP تعتمد على واجهة UART للتفاعل مع جهة المضيف، فإن دعم UART API اختيارية. لكن حتى إذا كنت لا تخطط لاستخدام هذه الإضافات في مثال النظام الأساسي للجهاز الجديد، نوصي بشدة بإضافة الدعم لعدة أسباب:

  • واجهة سطر الأوامر (CLI) مفيدة للتحقق من أن المنفذ يعمل بشكل صحيح
  • تستخدم أداة Harmon Automation واجهة UART للتحكُّم في Openthread لأغراض الاختبار والاعتماد.

إذا كان النظام الأساسي للجهاز المستهدف يتوافق مع وحدة USB CDC بدلاً من UART، تأكد من:

  • تثبيت برنامج تشغيل USB CDC الصحيح من جهة المضيف
  • استبدل تنفيذ واجهة برمجة تطبيقات UART باستخدام برنامج تشغيل USB CDC (بالإضافة إلى برنامج BSP) على جانب OpenThread، باستخدام النماذج الأولية الوظيفية نفسها

راديو

تعريف واجهة برمجة التطبيقات:

/openthread/include/openthread/platform/radio.h

تحدِّد واجهة برمجة تطبيقات الراديو جميع الوظائف الضرورية التي تطلبها طبقة MAC الإضافية IEEE 802.15.4. يجب أن تكون شريحة الراديو متوافقة تمامًا مع مواصفات معهد الهندسة الكهربائية والإلكترونية IEEE التردد 2.4 غيغاهرتز.

ونظرًا لتوفّر ميزة "طاقة منخفضة" مفعّلة، تتطلّب منصّة OpenThread أن تنفّذ جميع الأنظمة الأساسية الإطار التلقائي في انتظار المراجعة (النقل غير المباشر) تلقائيًا، ويجب أيضًا تنفيذ جدول مطابقة العنوان المصدر في ملف المصدر radio.h.

ومع ذلك، إذا كان مثال النظام الأساسي للجهاز الجديد محدود المورد، يمكن تحديد جدول عنوان المصدر بصفر. اطّلِع على الإطار التلقائي في انتظار المراجعة لمزيد من المعلومات.

منوعات/إعادة ضبط

تعريف واجهة برمجة التطبيقات:

/openthread/include/openthread/platform/misc.h

توفّر واجهة برمجة التطبيقات Misc/إعادة ضبط طريقة لإعادة ضبط البرامج على الشريحة، والاستعلام عن سبب آخر إعادة ضبط.

الإنتروبيا

تعريف واجهة برمجة التطبيقات:

/openthread/include/openthread/platform/entropy.h

توفر Entropy API أداة إنشاء أرقام عشوائية صحيحة (TRNG) للطبقة العليا، والتي يتم استخدامها للحفاظ على أصول الأمان لشبكة Openthread بالكامل. يجب أن تضمن واجهة برمجة التطبيقات إنشاء رقم عشوائي جديد لكل استدعاء الدالة. تتضمّن أصول الأمان المتأثرة ببروتوكول TRNG:

  • رقم AES CCM رقم
  • عدم استقرار عشوائي
  • العنوان الموسّع للأجهزة
  • الفترة العشوائية الأولية في موقّت التنقّل
  • معرّفات الرموز/الرسائل في CoAP

تجدر الإشارة إلى أنّ العديد من المنصّات قد سبق أن دمجت أداة إنشاء أرقام عشوائية، مفشيًا واجهة برمجة التطبيقات في حزمة BSP. وفي حال عدم توافق النظام الأساسي للجهاز المستهدف مع TRNG، يمكنك الاستفادة من أخذ العينات من وحدة ADC لإنشاء رقم عشوائي ثابت الطول. نموذج تكرارات متعددة إذا لزم الأمر لاستيفاء متطلبات TRNG (uint32_t)

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

مساحة تخزين غير قابلة للتقلّب

تعريفات واجهة برمجة التطبيقات:

/openthread/include/openthread/platform/flash.h

أو

/openthread/include/openthread/platform/settings.h

ويمكن تلبية متطلّبات التخزين غير المتجدّدة من خلال تنفيذ إحدى واجهتَي برمجة التطبيقات المذكورتَين أعلاه. تُشغِّل واجهة برمجة تطبيقات Flash برنامج تشغيل لتخزين الفلاش، بينما توفّر واجهة برمجة تطبيقات الإعدادات وظائف تنفيذ الفلاش الأساسي إلى الطبقة العليا.

تكشف واجهات برمجة التطبيقات هذه عن الطبقة العليا:

  • حجم مساحة التخزين غير المتغيرة المتاحة لتخزين بيانات التطبيق (على سبيل المثال، مجموعة البيانات التشغيلية النشطة/في انتظار المراجعة ومعلمات الشبكة الحالية وبيانات اعتماد أجهزة سلسلة المحادثات لإعادة التركيب بعد إعادة الضبط)
  • عمليات الكتابة والكتابة ومحو البيانات والاستعلام عن الفلاش

استخدِم OPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE في ملف الإعداد الأساسي لنموذج النظام الأساسي للإشارة إلى واجهة برمجة التطبيقات التي يجب أن يستخدمها النظام الأساسي. إذا تم تعيينها على 1، يجب تنفيذ Flash API. وبخلاف ذلك، يجب تنفيذ واجهة برمجة تطبيقات الإعدادات.

يجب ضبط هذه العلامة في ملف /openthread/examples/platforms/platform-name/openthread-core-platform-name-config.h.

جارٍ التسجيل

تعريف واجهة برمجة التطبيقات:

/openthread/include/openthread/platform/logging.h

تُطبِّق واجهة برمجة تطبيقات التسجيل وظيفية تسجيل وتصحيح الأخطاء في Openthread، مع توفّر مستويات متعددة من نتائج تصحيح الأخطاء. تُعد واجهة برمجة التطبيقات هذه اختيارية إذا كنت لا تخطط لاستخدام تسجيل Openthread على مثال النظام الأساسي للجهاز الجديد.

المستوى الأعلى والأكثر تفصيلاً هو OPENTHREAD_LOG_LEVEL_DEBG، الذي يطبع جميع معلومات الحزمة الأولية ويسجّل الأسطر من خلال المنفذ التسلسلي أو على الوحدة الطرفية. اختَر مستوى تصحيح الأخطاء الذي يلبي احتياجاتك على أفضل وجه.

خاص بالنظام

تعريف واجهة برمجة التطبيقات:

/openthread/examples/platforms/openthread-system.h

توفّر واجهة برمجة التطبيقات الخاصة بالنظام في المقام الأول عمليات إعداد وعمليات ضبط للنظام الأساسي للأجهزة التي تم اختيارها. لا يتم استدعاء واجهة برمجة التطبيقات هذه من خلال مكتبة OpenThread نفسها، ولكنها قد تكون مفيدة للنظام/RTOS. يمكنك أيضًا تنفيذ إعداد الوحدات الأخرى (على سبيل المثال، UART، Radio، عشوائي، Misc/إعادة ضبط) في هذا الملف المصدر.

يعتمد تنفيذ واجهة برمجة التطبيقات هذه على حالة استخدامك. إذا كنت تريد استخدام تطبيقات CLI وNCP التي تم إنشاؤها للنظام الأساسي، عليك تنفيذ واجهة برمجة التطبيقات هذه. وبخلاف ذلك، يمكن تنفيذ أي واجهة برمجة تطبيقات لدمج نماذج برامج التشغيل في النظام/RTOS.