วิธีสร้าง OpenThread
ขั้นตอนการสร้าง OpenThread จะแตกต่างกันไปโดยขึ้นอยู่กับ Toolchain, เครื่องของผู้ใช้ และ แพลตฟอร์มเป้าหมาย
ขั้นตอนการทำงานที่พบบ่อยที่สุดมีดังนี้
- ตั้งค่าสภาพแวดล้อมของบิลด์และติดตั้ง Toolchain ที่ต้องการ
- หากต้องการสร้างบนเครื่องโดยตรง โปรดดูวิธีการโดยละเอียดที่ Simulation Codelab
- หากต้องการใช้คอนเทนเนอร์ Docker กับสภาพแวดล้อมที่กำหนดค่าไว้ล่วงหน้า
ดาวน์โหลดและเรียกใช้อิมเมจ OpenThread
environment
ดังนี้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
- จากไดเรกทอรีรูทของที่เก็บที่โคลน ให้ทำดังนี้
- ติดตั้ง Toolchain
./script/bootstrap
- สร้างการกำหนดค่าด้วยคำสั่งต่อไปนี้
./script/build platform-specific-args cmake-options
- ติดตั้ง Toolchain
- แฟลชไบนารีที่ต้องการไปยังแพลตฟอร์มเป้าหมาย ไบนารีที่สร้างขึ้นทั้งหมด
อยู่ใน
./build/bin
การกำหนดค่า
คุณสามารถกำหนดค่า OpenThread สำหรับฟังก์ชันการทำงานและลักษณะการทำงานต่างๆ ในระหว่าง สร้างกระบวนการสร้าง ตัวเลือกการกำหนดค่าที่ใช้ได้มีรายละเอียดดังนี้ สถานที่ตั้ง:
ประเภท | ตำแหน่ง |
---|---|
ค่าคงที่เวลาคอมไพล์ | แสดงอยู่ในไฟล์ส่วนหัวทั้งหมดใน /src/core/config |
ตัวเลือกบิลด์ cmake | แสดงใน openthread/examples/README.md |
ตัวอย่างการสร้าง
ใช้ตัวเลือกบิลด์ cmake เพื่อเปิดใช้ฟังก์ชันการทำงานสำหรับแพลตฟอร์ม ตัวอย่างเช่น หากต้องการ สร้างไบนารีสำหรับแพลตฟอร์ม CC2538 ที่เปิดใช้การสนับสนุนจาก Commissioner และ 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 |
อุปกรณ์เทรดขั้นต่ำสำหรับการออกแบบ SoC | -DOT_APP_CLI=ON -DOT_MTD=ON |
ot-ncp-ftd |
อุปกรณ์ Full Thread สำหรับการออกแบบ Network Co-Processor (NCP) | -DOT_APP_NCP=ON -DOT_FTD=ON |
ot-ncp-mtd |
อุปกรณ์เทรดแบบเรียบง่ายสำหรับการออกแบบ 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) คือโหมดบิลด์ของ OpenThread POSIX ที่เรียกใช้ OpenThread เป็นบริการและใช้กับการออกแบบ RCP สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ดูวิธีสร้างและใช้งานได้ที่ OpenThread Daemon
สร้างแพ็กเกจการสนับสนุน
พบแพ็กเกจการสนับสนุน (BSP) ใน
/third_party
BSP คือโค้ดของบุคคลที่สามเพิ่มเติมที่ OpenThread จะใช้ในแต่ละแพลตฟอร์มที่เกี่ยวข้อง โดยทั่วไปจะรวมอยู่เมื่อพอร์ต OpenThread ไปยังแพลตฟอร์มฮาร์ดแวร์ใหม่