בניית פרוטוקול OpenThread

הצגת המקור ב-GitHub

איך בונים את OpenThread

השלבים לבניית OpenThread משתנים בהתאם ל-toolchain, למכונה של המשתמש ול- פלטפורמת היעד.

תהליך העבודה הנפוץ ביותר הוא:

  1. מגדירים את סביבת ה-build ומתקינים את 'צרור הכלים' הרצוי:
    1. כדי לפתח ישירות במכונה,ניתן לקבל הוראות מפורטות ב-Simulation Codelab
    2. כדי להשתמש בקונטיינר של Docker בסביבה מוגדרת מראש, מורידים ומפעילים את קובץ האימג' environment של OpenThread:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. משכפלים בסביבה שבחרתם את מאגר ה-OpenThread Git הספציפי לפלטפורמה. ניקח לדוגמה את CC2538:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. מספריית השורש של המאגר המשוכפל:
    1. מתקינים את 'צרור הכלים':
      ./script/bootstrap
      
    2. יוצרים את ההגדרות האישיות:
      ./script/build platform-specific-args cmake-options
      
  4. Flash את הקובץ הבינארי הרצוי לפלטפורמת היעד. כל הקבצים הבינאריים שנוצרו נמצא ב-./build/bin.

תצורה

אפשר להגדיר ל-OpenThread פונקציונליות והתנהגות שונות במהלך תהליך ה-build. אפשרויות ההגדרה הזמינות מפורטות בהמשך מיקומים:

סוג מיקום
קבועים של זמן הידור רשימה בכל קובצי הכותרות ב-/src/core/config
אפשרויות build של cmake רשום באזור openthread/examples/README.md

דוגמאות לבנייה

להשתמש באפשרויות build של cmake כדי להפעיל פונקציונליות לפלטפורמה. לדוגמה, כדי לבנות את הקובץ הבינארי לפלטפורמה CC2538 כשהתמיכה ב- Commissioner וב-Connecter מופעלת:

./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON

לחלופין, כדי לפתח את הפלטפורמה nRF52840 באמצעות התכונה זיהוי Jam שמופעל במאגר שלו:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

קבצים בינאריים

הקבצים הבינאריים הבאים נוצרים ב-./build/bin מתהליך ה-build. כדי לקבוע אילו קבצים בינאריים נוצרים, משתמשים בדגלים עם הפקודה ./script/build. לדוגמה, כדי לפתח OpenThread וליצור רק את הקובץ הבינארי של FTD CLI:

./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
בינארי תיאור אפשרויות
ot-cli-ftd מכשיר פרוטוקול Thread מלא לעיצובי SoC -DOT_APP_CLI=ON
-DOT_FTD=ON
ot-cli-mtd מכשיר פרוטוקול Thread מינימלי לעיצובי SoC -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd מכשיר פרוטוקול Thread מלא לעיצובים של מעבדי רשת (NCP) -DOT_APP_NCP=ON
-DOT_FTD=ON
ot-ncp-mtd מכשיר פרוטוקול Thread מינימלי לעיצובי NCP -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp תכנון מעבד מידע-שותף לרדיו (RCP) -DOT_APP_RCP=ON
-DOT_RCP=ON

כברירת מחדל, כל הדגלים שלמעלה מופעלים. אם משביתים באופן מפורש את כל הדגלים, האפליקציות לא אבל קבצים בספריית OpenThread עדיין נוצרים ב-./build/lib לשימוש בפרויקט.

בספרייה examples/platforms אפשר לראות אילו דגלים בכל פלטפורמה נתמך. לקבלת מידע נוסף על FTD ו-MTD, כדאי לעיין Thread Primer: עבור מידע נוסף על עיצובי SoC ו-NCP זמין במאמר פלטפורמות.

התהליך להפעלת הקבצים הבינאריים האלה משתנה בהתאם לפלטפורמות לדוגמה. לצפייה קובצי README בכל פלטפורמה תיקייה לדוגמה כדי לקבל הוראות מפורטות.

דימון (Daemon) של OpenThread

OpenThread Daemon (OT Daemon) הוא מצב build של OpenThread POSIX שרץ OpenThread כשירות ומשתמשים בו בעיצוב ה-RCP. מידע נוסף על במאמר OpenThread Daemon תוכלו ללמוד איך לפתח אותו ולהשתמש בו.

בניית חבילות תמיכה

חבילות התמיכה של Build (BSP) נמצאות ב- /third_party BSP הם קוד נוסף של צד שלישי שמשמש את OpenThread בכל פלטפורמה מתאימה, והם נכללים בדרך כלל כאשר מעבירים OpenThread לפלטפורמת חומרה חדשה.