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