14.1.1.1. Menyiapkan lingkungan pengembangan

Anda membutuhkan tiga hal di host sebelum dapat mengompilasi: editor (VS Code direkomendasikan karena debugger terintegrasi dengannya), shell berbasis Linux (WSL di Windows, native di Linux/macOS), dan repositori OpenMV dengan SDK yang sudah diekstrak.

14.1.1.1.1. VS Code

Editor apa pun dapat digunakan untuk pengembangan firmware -- build hanya menggunakan make, dan debugger on-hardware juga berjalan dari baris perintah. Visual Studio Code adalah jalur paling mudah: pengaturan Men-debug firmware terintegrasi dengan ekstensi Cortex-Debug-nya, sehingga dengan VS Code yang terinstal semua halaman ini dapat langsung digunakan, baik untuk membangun maupun debugging.

14.1.1.1.1.1. Menginstal VS Code

  • Windows -- unduh installer dari code.visualstudio.com dan jalankan. Instal VS Code di Windows, bukan di dalam WSL; VS Code terintegrasi dengan WSL melalui ekstensi WSL, menjalankan UI-nya di Windows sementara compiler, file, dan debugger berada di Linux.

  • macOS -- unduh .zip dari code.visualstudio.com, ekstrak, dan seret Visual Studio Code.app ke /Applications. Atau brew install --cask visual-studio-code.

  • Linux -- instal .deb / .rpm dari code.visualstudio.com (misalnya sudo apt install ./code_*.deb), atau gunakan Snap/Flatpak distribusi.

Ekstensi yang perlu diinstal (dari panel Extensions, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) -- navigasi sumber C dan IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) -- debugging on-chip melalui GDB dan server J-Link / OpenOCD. Diperlukan untuk Men-debug firmware.

  • WSL (ms-vscode-remote.remote-wsl) -- hanya Windows. Memungkinkan VS Code membuka folder di dalam distribusi WSL Anda sehingga editor, terminal, IntelliSense, dan Cortex-Debug semuanya beroperasi di Linux. Instal ekstensi C/C++ dan Cortex-Debug ke host WSL setelah terhubung (VS Code akan meminta ini).

14.1.1.1.2. Shell host

Anda membutuhkan lingkungan Linux (x86-64) atau macOS (arm64) dengan git dan beberapa alat dasar. Pilih bagian sesuai OS Anda.

14.1.1.1.2.1. Windows: instal WSL

WSL menjalankan userland Ubuntu asli di Windows. Setelah diinstal, setiap instruksi berikutnya dalam panduan ini identik dengan Linux native.

  1. Buka PowerShell sebagai Administrator (klik kanan Start -> Terminal (Admin)).

  2. Instal WSL dengan distribusi Ubuntu default:

    wsl --install
    

    Ini mengaktifkan fitur Windows yang diperlukan, menginstal kernel WSL 2, dan menginstal Ubuntu. Reboot jika diminta.

  3. Setelah reboot, Ubuntu diluncurkan dan meminta Anda membuat nama pengguna dan kata sandi UNIX. Akun ini terpisah dari akun Windows Anda.

  4. Perbarui distribusi:

    sudo apt update && sudo apt upgrade -y
    
  5. Konfirmasi Anda menggunakan WSL 2 (diperlukan -- WSL 1 tidak didukung untuk alur kerja ini). Di PowerShell:

    wsl --list --verbose
    

    Kolom VERSION harus menampilkan 2. Jika menampilkan 1, konversikan:

    wsl --set-version Ubuntu 2
    

Tip

Bekerja di dalam filesystem Linux (~/ di WSL), bukan di bawah /mnt/c/. Membangun di drive yang dipasang Windows jauh lebih lambat dan dapat menyebabkan masalah izin file dan akhir baris. Clone repositori ke direktori home WSL Anda.

Untuk membuka proyek nantinya: luncurkan Ubuntu dari menu Start untuk membuka shell, atau dari VS Code di Windows tekan Ctrl+Shift+P -> WSL: Connect to WSL, lalu File -> Open Folder dan pilih repo yang sudah di-clone di filesystem Linux.

14.1.1.1.2.2. Prasyarat Linux / WSL

SDK menyediakan compiler, sehingga hanya beberapa paket host yang diperlukan:

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

14.1.1.1.2.3. Prasyarat macOS

Build native didukung hanya di macOS Apple-silicon (arm64). Menggunakan Homebrew

brew install bash make coreutils

(Mac Intel bukan host build native yang didukung -- gunakan build Docker dari Membangun firmware atau VM Linux.)

14.1.1.1.3. Mengambil sumber kode

Clone repositori dengan semua submodul (MicroPython, CMSIS, driver vendor, dll.):

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

Clone rekursif penuh berukuran besar. Untuk clone dangkal yang lebih cepat:

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

Catatan

Saat membangun board tertentu, Anda dapat membiarkan make mengambil hanya submodul board tersebut:

make TARGET=<board> submodules

Perintah git submodule update eksplisit yang ditunjukkan di atas sudah mencakup semuanya, sehingga langkah ini opsional.

14.1.1.1.4. Menginstal OpenMV SDK

Dari root repositori, jalankan instalasi SDK satu kali:

make sdk

Ini mengunduh openmv-sdk-<version>-<os>-<arch>.tar.xz dari download.openmv.io, memverifikasi checksum SHA-256-nya, dan mengekstraknya ke ~/openmv-sdk-<version>/ (versi dikunci oleh file SDK_VERSION repo). Ini idempoten -- menjalankannya kembali tidak melakukan apa pun jika versi yang benar sudah terinstal, dan build reguler akan berhenti dengan pesan "OpenMV SDK not found. Run 'make sdk' to install it." jika hilang atau versinya salah.

SDK membundel semua yang dibutuhkan untuk build dan debugger, semuanya ditambahkan ke PATH secara otomatis oleh Makefile:

Komponen

Tujuan

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

Compiler, linker, arm-none-eabi-gdb untuk debugging

LLVM/clang

Digunakan untuk objek tertentu di beberapa port

CMake, GNU Make

Orkestrasi build untuk library vendor

Python (relocatable)

Skrip build, helper mpy-cross, penandatanganan, alat model

STM32CubeProgrammer (STM32_Programmer_CLI)

Flashing SWD dan alur pemulihan STM32N6

ST Edge AI

Compiler jaringan saraf untuk NPU STM32N6

dfu-util

Flashing USB DFU

gdbrunner

Launcher server GDB untuk target make debug (perangkat lunak Segger J-Link yang dikendalikannya adalah instalasi terpisah)

Peringatan

OpenMV N6 dan OpenMV AE3 menggunakan core Cortex-M55 dan membutuhkan GCC 14.3 atau lebih baru. Build menegakkan ini untuk target tersebut dan berhenti dengan pesan kesalahan "Upgrade to GCC 14.3+ for proper CM55 support" jika arm-none-eabi-gcc yang lebih lama ditemukan sebelum SDK di PATH. Toolchain SDK yang dibundel sudah memenuhi syarat ini; kesalahan tersebut berarti toolchain yang berbeda dan lebih lama sedang membayanginya.