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

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

איך בונים את OpenThread

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

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

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

הגדרות אישיות

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

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

דוגמאות ל-Build

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

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

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

./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 זמין במאמר פלטפורמות.

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

דימון OpenThread

‫OpenThread Daemon (OT Daemon) הוא מצב בנייה של OpenThread POSIX שבו OpenThread פועל כשירות, והוא משמש עם עיצוב RCP. מידע נוסף על בנייה ושימוש זמין במאמר OpenThread Daemon.

יצירת חבילות תמיכה

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