איך בונים את OpenThread
השלבים ליצירת OpenThread משתנים בהתאם לשרשרת הכלים, למחשב של המשתמש ולפלטפורמת היעד.
תהליך העבודה הנפוץ ביותר הוא:
- מגדירים את סביבת הבנייה ומתקינים את ערכת הכלים הרצויה:
- כדי ליצור ישירות במחשב, אפשר לעיין בהוראות המפורטות בCodelab בנושא סימולציה.
- כדי להשתמש בקונטיינר Docker עם סביבה שהוגדרה מראש,
מורידים ומריצים את קובץ האימג' של OpenThread
environment:docker pull openthread/environment:latestdocker run -it --rm openthread/environment bash
- בסביבה שבחרתם, משכפלים את מאגר ה-Git של OpenThread שספציפי לפלטפורמה. לדוגמה, CC2538:
git clone https://github.com/openthread/ot-cc2538.git --recursive - מתיקיית השורש של המאגר המשוכפל:
- מתקינים את ערכת הכלים:
./script/bootstrap - יוצרים את ההגדרה:
./script/build platform-specific-args cmake-options
- מתקינים את ערכת הכלים:
- מריצים את הקובץ הבינארי הרצוי בפלטפורמת היעד. כל הקבצים הבינאריים שנוצרו נמצאים בתיקייה
./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 לפלטפורמת חומרה חדשה.