สร้าง OpenThread

ดูแหล่งข้อมูลใน GitHub

วิธีสร้าง OpenThread

ขั้นตอนการสร้าง OpenThread จะแตกต่างกันไปตาม Toolchain, เครื่องของผู้ใช้ และ แพลตฟอร์มเป้าหมาย

ขั้นตอนการทำงานที่พบบ่อยที่สุดมีดังนี้

  1. ตั้งค่าสภาพแวดล้อมการสร้างและติดตั้ง Toolchain ที่ต้องการ ดังนี้
    1. หากต้องการสร้างบนเครื่องโดยตรง โปรดดูวิธีการโดยละเอียดใน Codelab การจำลอง
    2. หากต้องการใช้คอนเทนเนอร์ Docker ที่มีสภาพแวดล้อมที่กำหนดค่าไว้ล่วงหน้า ให้ดาวน์โหลดและเรียกใช้อิมเมจ OpenThread environment
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. โคลนที่เก็บ Git ของ OpenThread ที่เฉพาะเจาะจงแพลตฟอร์มภายในสภาพแวดล้อมที่คุณเลือก ตัวอย่างเช่น CC2538
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. จากไดเรกทอรีรูทของที่เก็บที่โคลน ให้ทำดังนี้
    1. ติดตั้ง Toolchain โดยทำดังนี้
      ./script/bootstrap
      
    2. สร้างการกำหนดค่า
      ./script/build platform-specific-args cmake-options
      
  4. แฟลชไบนารีที่ต้องการไปยังแพลตฟอร์มเป้าหมาย ไบนารีทั้งหมดที่สร้างขึ้นจะอยู่ใน./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 ไปยังแพลตฟอร์มฮาร์ดแวร์ใหม่