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-codeLinux -- ติดตั้ง
.deb/.rpmจาก code.visualstudio.com (เช่นsudo apt install ./code_*.deb) หรือใช้ Snap/Flatpak ของดิสทริบิวชัน
Extensions ที่ต้องติดตั้ง (จากแผง Extensions, Ctrl+Shift+X):
C/C++ (
ms-vscode.cpptools) -- การนำทางโค้ด C และ IntelliSenseCortex-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 เนทีฟ
เปิด PowerShell ในฐานะ Administrator (คลิกขวา Start -> Terminal (Admin))
ติดตั้ง WSL พร้อม Ubuntu distribution เริ่มต้น:
wsl --installการดำเนินการนี้จะเปิดใช้งานฟีเจอร์ Windows ที่จำเป็น ติดตั้ง WSL 2 kernel และติดตั้ง Ubuntu รีบูตถ้าระบบแจ้ง
หลังจากรีบูต Ubuntu จะเปิดขึ้นและขอให้คุณสร้าง UNIX username และ password บัญชีนี้เป็นอิสระจากบัญชี Windows ของคุณ
อัปเดต distribution:
sudo apt update && sudo apt upgrade -yตรวจสอบว่าคุณอยู่บน 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 ( |
คอมไพเลอร์, ตัวลิงก์, |
LLVM/clang |
ใช้สำหรับออบเจกต์ที่เลือกบางพอร์ต |
CMake, GNU Make |
การจัดการการบิลด์สำหรับ vendor libraries |
Python (relocatable) |
สคริปต์บิลด์, ตัวช่วย |
STM32CubeProgrammer ( |
การแฟลชผ่าน SWD และกระบวนการกู้คืน STM32N6 |
ST Edge AI |
คอมไพเลอร์โครงข่ายประสาทเทียมสำหรับ STM32N6 NPU |
|
การแฟลชผ่าน USB DFU |
|
ตัวเปิดใช้ GDB server สำหรับ |
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 อื่นที่เก่ากว่ากำลังบดบังมันอยู่