نحوه ساخت OpenThread
مراحل ساخت OpenThread بسته به زنجیره ابزار، ماشین کاربر و پلتفرم هدف متفاوت است.
رایج ترین گردش کار این است:
- محیط ساخت را تنظیم کنید و زنجیره ابزار مورد نظر را نصب کنید:
- برای ساخت مستقیم روی یک ماشین، برای دستورالعمل های دقیق به شبیه سازی Codelab مراجعه کنید
- برای استفاده از کانتینر Docker با یک محیط از پیش پیکربندی شده، تصویر
environment
OpenThread را دانلود و اجرا کنید:docker pull openthread/environment:latest
docker run -it --rm openthread/environment bash
- در محیط انتخابی خود، مخزن OpenThread Git مخصوص پلتفرم را شبیه سازی کنید. 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 | فهرست شده در openthread/examples/README.md |
نمونه ها را بسازید
از گزینه های ساخت cmake برای فعال کردن عملکرد پلت فرم استفاده کنید. به عنوان مثال، برای ساخت باینری برای پلتفرم CC2538 با فعال بودن پشتیبانی Commiser و Joiner:
./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON
یا برای ساختن پلتفرم nRF52840 با قابلیت تشخیص Jam فعال در مخزن آن:
./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON
باینری ها
باینری های زیر در ./build/bin
از فرآیند ساخت تولید می شوند. برای تعیین اینکه کدام باینری ها تولید می شوند، از پرچم ها با دستور ./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 | دستگاه Full Thread برای طراحی SoC | -DOT_APP_CLI=ON -DOT_FTD=ON |
ot-cli-mtd | دستگاه Minimal Thread برای طراحی SoC | -DOT_APP_CLI=ON -DOT_MTD=ON |
ot-ncp-ftd | دستگاه Full Thread برای طراحی های شبکه Co-Processor (NCP). | -DOT_APP_NCP=ON -DOT_FTD=ON |
ot-ncp-mtd | دستگاه Minimal 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 ها را در پوشه نمونه هر پلتفرم ببینید.
OpenThread Daemon
OpenThread Daemon (OT Daemon) یک حالت ساخت OpenThread POSIX است که OpenThread را به عنوان یک سرویس اجرا می کند و با طراحی RCP استفاده می شود. برای اطلاعات بیشتر در مورد نحوه ساخت و استفاده از آن، به OpenThread Daemon مراجعه کنید.
ساخت بسته های پشتیبانی
بستههای پشتیبانی ساخت (BSP) در /third_party
یافت میشوند. BSPها کدهای شخص ثالث اضافی هستند که توسط OpenThread در هر پلتفرم مربوطه استفاده میشوند و معمولاً هنگام انتقال OpenThread به یک پلتفرم سختافزاری جدید گنجانده میشوند.