14.1.1.1. การตั้งค่าสภาพแวดล้อมการพัฒนา

คุณต้องมีสามสิ่งบนโฮสต์ก่อนที่จะคอมไพล์ได้: โปรแกรมแก้ไขโค้ด (แนะนำ VS Code เพราะดีบักเกอร์เชื่อมต่อกับมัน) เชลล์แบบ Linux (WSL บน Windows หรือแบบเนทีฟบน Linux/macOS) และที่เก็บโค้ด OpenMV พร้อม SDK ที่กำหนดเวอร์ชันแล้วแตกไฟล์แล้ว

14.1.1.1.1. VS Code

โปรแกรมแก้ไขใด ๆ ก็ใช้สำหรับการพัฒนาเฟิร์มแวร์ได้ -- การบิลด์เพียงแค่ใช้ make และดีบักเกอร์บนฮาร์ดแวร์ก็สามารถรันจาก command line ได้เช่นกัน Visual Studio Code เป็นเพียงเส้นทางที่ง่ายที่สุด: การตั้งค่า การดีบักเฟิร์มแวร์ เชื่อมต่อกับ extension Cortex-Debug ดังนั้นเมื่อติดตั้ง VS Code แล้ว หน้าต่าง ๆ ที่เหลือจะทำงานได้ทันที ทั้งการบิลด์และการดีบัก

14.1.1.1.1.1. การติดตั้ง VS Code

  • Windows -- ดาวน์โหลดตัวติดตั้งจาก code.visualstudio.com และรันมัน ติดตั้ง VS Code บน Windows ไม่ใช่ภายใน WSL; มันผสานกับ WSL ผ่าน extension WSL โดยรัน UI บน Windows ในขณะที่คอมไพเลอร์ ไฟล์ และดีบักเกอร์อยู่ใน Linux

  • macOS -- ดาวน์โหลด .zip จาก code.visualstudio.com, แตกไฟล์ และลาก Visual Studio Code.app ไปไว้ใน /Applications หรือใช้ brew install --cask visual-studio-code

  • Linux -- ติดตั้ง .deb / .rpm จาก code.visualstudio.com (เช่น sudo apt install ./code_*.deb) หรือใช้ Snap/Flatpak ของดิสทริบิวชัน

Extensions ที่ต้องติดตั้ง (จากแผง Extensions, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) -- การนำทางโค้ด C และ IntelliSense

  • Cortex-Debug (marus25.cortex-debug) -- การดีบักบนชิปผ่าน GDB และ J-Link / OpenOCD server จำเป็นสำหรับ การดีบักเฟิร์มแวร์

  • WSL (ms-vscode-remote.remote-wsl) -- Windows เท่านั้น ช่วยให้ VS Code เปิดโฟลเดอร์ ภายใน WSL distribution ของคุณได้ เพื่อให้ editor, terminal, IntelliSense และ Cortex-Debug ทำงานใน Linux ทั้งหมด ติดตั้ง extensions C/C++ และ Cortex-Debug ลงใน WSL host เมื่อเชื่อมต่อแล้ว (VS Code จะแจ้งให้ทำ)

14.1.1.1.2. เชลล์โฮสต์

คุณต้องมีสภาพแวดล้อม Linux (x86-64) หรือ macOS (arm64) ที่มี git และเครื่องมือพื้นฐานบางอย่าง เลือกส่วนที่ตรงกับระบบปฏิบัติการของคุณ

14.1.1.1.2.1. Windows: ติดตั้ง WSL

WSL รัน Ubuntu userland จริง ๆ บน Windows หลังจากติดตั้งแล้ว คำแนะนำที่เหลือทุกข้อในคู่มือนี้จะเหมือนกับ Linux เนทีฟ

  1. เปิด PowerShell ในฐานะ Administrator (คลิกขวา Start -> Terminal (Admin))

  2. ติดตั้ง WSL พร้อม Ubuntu distribution เริ่มต้น:

    wsl --install
    

    การดำเนินการนี้จะเปิดใช้งานฟีเจอร์ Windows ที่จำเป็น ติดตั้ง WSL 2 kernel และติดตั้ง Ubuntu รีบูตถ้าระบบแจ้ง

  3. หลังจากรีบูต Ubuntu จะเปิดขึ้นและขอให้คุณสร้าง UNIX username และ password บัญชีนี้เป็นอิสระจากบัญชี Windows ของคุณ

  4. อัปเดต distribution:

    sudo apt update && sudo apt upgrade -y
    
  5. ตรวจสอบว่าคุณอยู่บน WSL 2 (จำเป็น -- WSL 1 ไม่รองรับสำหรับ workflow นี้) ใน PowerShell:

    wsl --list --verbose
    

    คอลัมน์ VERSION ต้องแสดง 2 ถ้าแสดง 1 ให้แปลง:

    wsl --set-version Ubuntu 2
    

Tip

ทำงานภายใน Linux filesystem (~/ ใน WSL) ไม่ใช่ ภายใต้ /mnt/c/ การบิลด์บน Windows-mounted drive นั้นช้ากว่ามากและอาจทำให้เกิดปัญหาเกี่ยวกับสิทธิ์ไฟล์และ line-ending clone ที่เก็บโค้ดลงใน WSL home directory ของคุณ

เพื่อเปิดโปรเจกต์ภายหลัง: เปิด Ubuntu จาก Start menu เพื่อเข้าถึงเชลล์ หรือจาก VS Code บน Windows กด Ctrl+Shift+P -> WSL: Connect to WSL จากนั้น File -> Open Folder และเลือก repo ที่ clone ไว้ใน Linux filesystem

14.1.1.1.2.2. ข้อกำหนดเบื้องต้นสำหรับ Linux / WSL

SDK มีคอมไพเลอร์ให้ ดังนั้นจำเป็นต้องมีแพ็คเกจโฮสต์เพียงไม่กี่อย่าง:

sudo apt-get update
sudo apt-get install git build-essential

14.1.1.1.2.3. ข้อกำหนดเบื้องต้นสำหรับ macOS

การบิลด์แบบเนทีฟรองรับเฉพาะ macOS ที่ใช้ Apple silicon (arm64) เท่านั้น ใช้ Homebrew

brew install bash make coreutils

(Mac รุ่น Intel ไม่ใช่โฮสต์บิลด์เนทีฟที่รองรับ -- ใช้การบิลด์ Docker จาก การสร้างเฟิร์มแวร์ หรือ Linux VM)

14.1.1.1.3. การดาวน์โหลดซอร์สโค้ด

Clone ที่เก็บโค้ดพร้อมทุก submodule (MicroPython, CMSIS, driver ของ vendor เป็นต้น):

git clone --recursive https://github.com/openmv/openmv.git
cd openmv

การ clone แบบ recursive เต็มรูปแบบมีขนาดใหญ่ สำหรับการ clone แบบ shallow ที่เร็วกว่า:

git clone --depth=1 https://github.com/openmv/openmv.git
cd openmv
git submodule update --init --depth=1 --no-single-branch
git -C lib/micropython/ submodule update --init --depth=1

Note

เมื่อบิลด์บอร์ดเฉพาะ คุณสามารถให้ make ดึงเฉพาะ submodule ของบอร์ดนั้น:

make TARGET=<board> submodules

คำสั่ง git submodule update ที่แสดงข้างต้นครอบคลุมทุกอย่างแล้ว ดังนั้นขั้นตอนนี้เป็นทางเลือก

14.1.1.1.4. การติดตั้ง OpenMV SDK

จาก root ของที่เก็บโค้ด รันคำสั่งติดตั้ง SDK ครั้งเดียว:

make sdk

คำสั่งนี้จะดาวน์โหลด openmv-sdk-<version>-<os>-<arch>.tar.xz จาก download.openmv.io ตรวจสอบ SHA-256 checksum และแตกไฟล์ไปที่ ~/openmv-sdk-<version>/ (เวอร์ชันถูกกำหนดโดยไฟล์ SDK_VERSION ของ repo) คำสั่งนี้เป็นแบบ idempotent -- รันซ้ำจะไม่ทำอะไรหากติดตั้งเวอร์ชันที่ถูกต้องแล้ว และการบิลด์ปกติจะยุติด้วย "OpenMV SDK not found. Run 'make sdk' to install it." หากหายไปหรือเวอร์ชันไม่ถูกต้อง

SDK รวมทุกอย่างที่การบิลด์และดีบักเกอร์ต้องการ โดยเพิ่มลงใน PATH โดยอัตโนมัติผ่าน Makefile:

ส่วนประกอบ

วัตถุประสงค์

ARM GNU toolchain (arm-none-eabi-gcc 14.3)

คอมไพเลอร์, ตัวลิงก์, arm-none-eabi-gdb สำหรับการดีบัก

LLVM/clang

ใช้สำหรับออบเจกต์ที่เลือกบางพอร์ต

CMake, GNU Make

การจัดการการบิลด์สำหรับ vendor libraries

Python (relocatable)

สคริปต์บิลด์, ตัวช่วย mpy-cross, การเซ็น, เครื่องมือโมเดล

STM32CubeProgrammer (STM32_Programmer_CLI)

การแฟลชผ่าน SWD และกระบวนการกู้คืน STM32N6

ST Edge AI

คอมไพเลอร์โครงข่ายประสาทเทียมสำหรับ STM32N6 NPU

dfu-util

การแฟลชผ่าน USB DFU

gdbrunner

ตัวเปิดใช้ GDB server สำหรับ make debug (ซอฟต์แวร์ Segger J-Link ที่มันขับเคลื่อนต้องติดตั้งแยกต่างหาก)

Warning

OpenMV N6 และ OpenMV AE3 ใช้คอร์ Cortex-M55 และต้องการ GCC 14.3 หรือใหม่กว่า การบิลด์บังคับใช้สิ่งนี้สำหรับเป้าหมายเหล่านั้นและยุติด้วยข้อผิดพลาด "Upgrade to GCC 14.3+ for proper CM55 support" หากพบ arm-none-eabi-gcc รุ่นเก่ากว่าก่อน SDK บน PATH toolchain ที่รวมมากับ SDK ตอบสนองข้อกำหนดนี้อยู่แล้ว ข้อผิดพลาดนี้หมายความว่ามี toolchain อื่นที่เก่ากว่ากำลังบดบังมันอยู่