วิธีสร้าง OpenThread
ขั้นตอนการสร้าง OpenThread จะแตกต่างกันไปตาม Toolchain, เครื่องของผู้ใช้ และ แพลตฟอร์มเป้าหมาย
ขั้นตอนการทำงานที่พบบ่อยที่สุดมีดังนี้
- ตั้งค่าสภาพแวดล้อมการสร้างและติดตั้ง Toolchain ที่ต้องการ ดังนี้
- หากต้องการสร้างบนเครื่องโดยตรง โปรดดูวิธีการโดยละเอียดใน Codelab การจำลอง
- หากต้องการใช้คอนเทนเนอร์ Docker ที่มีสภาพแวดล้อมที่กำหนดค่าไว้ล่วงหน้า
ให้ดาวน์โหลดและเรียกใช้อิมเมจ OpenThread
environmentdocker pull openthread/environment:latestdocker run -it --rm openthread/environment bash
- โคลนที่เก็บ Git ของ OpenThread ที่เฉพาะเจาะจงแพลตฟอร์มภายในสภาพแวดล้อมที่คุณเลือก ตัวอย่างเช่น CC2538
git clone https://github.com/openthread/ot-cc2538.git --recursive - จากไดเรกทอรีรูทของที่เก็บที่โคลน ให้ทำดังนี้
- ติดตั้ง Toolchain โดยทำดังนี้
./script/bootstrap - สร้างการกำหนดค่า
./script/build platform-specific-args cmake-options
- ติดตั้ง Toolchain โดยทำดังนี้
- แฟลชไบนารีที่ต้องการไปยังแพลตฟอร์มเป้าหมาย ไบนารีทั้งหมดที่สร้างขึ้นจะอยู่ใน
./build/bin
การกำหนดค่า
คุณกำหนดค่า OpenThread สำหรับฟังก์ชันการทำงานและลักษณะการทำงานที่แตกต่างกันได้ในระหว่าง กระบวนการสร้าง ตัวเลือกการกำหนดค่าที่ใช้ได้มีรายละเอียดอยู่ที่ตำแหน่งต่อไปนี้
| ประเภท | ตำแหน่ง |
|---|---|
| ค่าคงที่ในเวลาคอมไพล์ | แสดงอยู่ในไฟล์ส่วนหัวทั้งหมดใน /src/core/config |
| ตัวเลือกบิลด์ของ CMake | แสดงใน /etc/cmake/options.cmake |
สร้างตัวอย่าง
ใช้ตัวเลือกการสร้าง cmake เพื่อเปิดใช้ฟังก์ชันการทำงานสำหรับแพลตฟอร์ม เช่น หากต้องการ สร้างไบนารีสำหรับแพลตฟอร์ม CC2538 โดยเปิดใช้การรองรับ Commissioner และ Joiner ให้ทำดังนี้
./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON
หรือหากต้องการสร้างแพลตฟอร์ม nRF52840 โดยเปิดใช้ฟีเจอร์การตรวจจับการรบกวนในที่เก็บ ให้ทำดังนี้
./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON
ไบนารี
ระบบจะสร้างไบนารีต่อไปนี้ใน ./build/bin จากกระบวนการบิลด์ หากต้องการระบุไบนารีที่จะสร้าง ให้ใช้แฟล็กกับคำสั่ง ./script/build เช่น หากต้องการสร้าง OpenThread และสร้างไบนารี CLI ของ FTD เท่านั้น ให้ทำดังนี้
./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 แบบเต็มสำหรับการออกแบบ Network Co-Processor (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 |
โดยค่าเริ่มต้น ระบบจะเปิดใช้ฟีเจอร์ทั้งหมดข้างต้น หากคุณปิดใช้ Flag ทั้งหมดอย่างชัดเจน ระบบจะไม่สร้างแอปพลิเคชัน แต่จะยังสร้างไฟล์ไลบรารี OpenThread ใน ./build/lib เพื่อใช้ในโปรเจ็กต์
โปรดดูexamples/platformsไดเรกทอรีเพื่อดูว่าแต่ละแพลตฟอร์มรองรับฟีเจอร์
ใดบ้าง ดูข้อมูลเพิ่มเติมเกี่ยวกับ FTD และ MTD ได้ที่ข้อมูลเบื้องต้นเกี่ยวกับ Thread ดูข้อมูลเพิ่มเติมเกี่ยวกับดีไซน์ SoC และ NCP ได้ที่แพลตฟอร์ม
กระบวนการแฟลชไบนารีเหล่านี้จะแตกต่างกันไปในแต่ละแพลตฟอร์มตัวอย่าง ดูวิธีการโดยละเอียดได้ที่ ไฟล์ README ใน โฟลเดอร์ตัวอย่างของแต่ละแพลตฟอร์ม
OpenThread Daemon
OpenThread Daemon (OT Daemon) คือโหมดบิลด์ POSIX ของ OpenThread ที่เรียกใช้ OpenThread เป็นบริการและใช้กับการออกแบบ RCP ดูข้อมูลเพิ่มเติมเกี่ยวกับ วิธีสร้างและใช้งานได้ที่OpenThread Daemon
สร้างแพ็กเกจบริการสนับสนุน
คุณจะพบ Build Support Packages (BSP) ได้ใน
/third_party BSP คือโค้ดของบุคคลที่สามเพิ่มเติมที่ OpenThread ใช้ในแต่ละแพลตฟอร์มที่เกี่ยวข้อง โดยโดยทั่วไปจะรวมไว้เมื่อพอร์ต OpenThread ไปยังแพลตฟอร์มฮาร์ดแวร์ใหม่