14.1.1.1. Kehitysympäristön pystyttäminen

Tarvitset isäntäkoneella kolme asiaa ennen kuin voit kääntää: editorin (VS Codea suositellaan, koska virheenkorjain kytkeytyy siihen), Linux-tyyppisen komentotulkin (WSL Windowsissa, natiivi Linuxissa/macOS:ssä) sekä OpenMV-repositorion, johon kiinnitetty SDK on purettu.

14.1.1.1.1. VS Code

Mikä tahansa editori käy laiteohjelmiston kehitykseen – käännös on pelkkä make, ja laitteistolla toimiva virheenkorjain ajetaan myös komentoriviltä. Visual Studio Code on yksinkertaisesti helpoin tie: Laiteohjelmiston virheenjäljitys-asennus kytkeytyy sen Cortex-Debug-laajennukseen, joten VS Coden ollessa asennettuna nämä loput sivut toimivat suoraan sekä kääntämisen että virheenkorjauksen osalta.

14.1.1.1.1.1. VS Coden asentaminen

  • Windows – lataa asennusohjelma osoitteesta code.visualstudio.com ja suorita se. Asenna VS Code Windowsiin, ei WSL:n sisälle; se integroituu WSL:ään WSL-laajennuksen kautta, ajaen käyttöliittymänsä Windowsissa samalla kun kääntäjä, tiedostot ja virheenkorjain sijaitsevat Linuxissa.

  • macOS – lataa .zip-tiedosto osoitteesta code.visualstudio.com, pura se ja vedä Visual Studio Code.app hakemistoon /Applications. Tai brew install --cask visual-studio-code.

  • Linux – asenna .deb / .rpm osoitteesta code.visualstudio.com (esim. sudo apt install ./code_*.deb), tai käytä jakelun Snap-/Flatpak-pakettia.

Asennettavat laajennukset (Extensions-paneelista, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) – C-lähdekoodin navigointi ja IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – sirupohjainen virheenkorjaus GDB:n ja J-Link- / OpenOCD-palvelimen kautta. Vaaditaan sivulle Laiteohjelmiston virheenjäljitys.

  • WSL (ms-vscode-remote.remote-wsl) – vain Windows. Antaa VS Coden avata kansion WSL-jakelusi sisältä, jolloin editori, terminaali, IntelliSense ja Cortex-Debug toimivat kaikki Linuxissa. Asenna C/C++- ja Cortex-Debug-laajennukset WSL-isäntään, kun olet yhdistänyt (VS Code kehottaa tähän).

14.1.1.1.2. Isäntäkoneen komentotulkki

Tarvitset Linux- (x86-64) tai macOS- (arm64) ympäristön, jossa on git ja muutamia perustyökaluja. Valitse käyttöjärjestelmääsi vastaava osio.

14.1.1.1.2.1. Windows: asenna WSL

WSL ajaa aitoa Ubuntu-käyttäjätilaa Windowsissa. Kun se on asennettu, jokainen myöhempi ohje tässä oppaassa on identtinen natiivin Linuxin kanssa.

  1. Avaa PowerShell järjestelmänvalvojana (napsauta hiiren oikealla Käynnistä-painiketta -> Terminaali (järjestelmänvalvoja)).

  2. Asenna WSL oletusarvoisella Ubuntu-jakelulla:

    wsl --install
    

    Tämä ottaa käyttöön vaaditut Windows-ominaisuudet, asentaa WSL 2 -ytimen ja asentaa Ubuntun. Käynnistä uudelleen pyydettäessä.

  3. Uudelleenkäynnistyksen jälkeen Ubuntu käynnistyy ja pyytää sinua luomaan UNIX-käyttäjätunnuksen ja salasanan. Tämä tili on riippumaton Windows-tilistäsi.

  4. Päivitä jakelu:

    sudo apt update && sudo apt upgrade -y
    
  5. Varmista, että käytät WSL 2:ta (vaaditaan – WSL 1:tä ei tueta tässä työnkulussa). PowerShellissä:

    wsl --list --verbose
    

    VERSION-sarakkeessa täytyy lukea 2. Jos siinä lukee 1, muunna se:

    wsl --set-version Ubuntu 2
    

Vihje

Työskentele Linux-tiedostojärjestelmän sisällä (~/ WSL:ssä), älä hakemiston /mnt/c/ alla. Kääntäminen Windowsiin liitetyllä asemalla on huomattavasti hitaampaa ja voi aiheuttaa tiedosto-oikeuksien ja rivinvaihtojen ongelmia. Kloonaa repositorio WSL-kotihakemistoosi.

Avataksesi projektin myöhemmin: käynnistä Ubuntu Käynnistä-valikosta saadaksesi komentotulkin, tai paina VS Codessa Windowsissa Ctrl+Shift+P -> WSL: Connect to WSL, sitten File -> Open Folder ja valitse kloonattu repo Linux-tiedostojärjestelmästä.

14.1.1.1.2.2. Linux- / WSL-esivaatimukset

SDK tarjoaa kääntäjän, joten vain kourallinen isäntäpaketteja tarvitaan:

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

14.1.1.1.2.3. macOS-esivaatimukset

Natiivia kääntämistä tuetaan vain Apple-piipohjaisessa (arm64) macOS:ssä. Käyttäen Homebrew-työkalua:

brew install bash make coreutils

(Intel-Maceja ei tueta natiivina käännösisäntänä – käytä Docker-käännöstä sivulta Laiteohjelmiston kääntäminen tai Linux-virtuaalikonetta.)

14.1.1.1.3. Lähdekoodin hankkiminen

Kloonaa repositorio kaikkine alimoduuleineen (MicroPython, CMSIS, valmistajien ajurit jne.):

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

Täysi rekursiivinen kloonaus on suuri. Nopeampaa, matalaa kloonausta varten:

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

Muista

Tiettyä korttia kääntäessäsi voit sen sijaan antaa make-komennon hakea vain kyseisen kortin alimoduulit:

make TARGET=<board> submodules

Yllä esitetty eksplisiittinen git submodule update kattaa jo kaiken, joten tämä vaihe on valinnainen.

14.1.1.1.4. OpenMV SDK:n asentaminen

Suorita repositorion juuresta kertaluonteinen SDK-asennus:

make sdk

Tämä lataa tiedoston openmv-sdk-<version>-<os>-<arch>.tar.xz osoitteesta download.openmv.io, varmistaa sen SHA-256-tarkistussumman ja purkaa sen hakemistoon ~/openmv-sdk-<version>/ (versio on kiinnitetty repon SDK_VERSION-tiedostossa). Se on idempotentti – uudelleensuoritus ei tee mitään, jos oikea versio on jo asennettu, ja tavallinen käännös keskeytyy virheellä ”OpenMV SDK not found. Run ’make sdk’ to install it.”, jos se puuttuu tai on väärä versio.

SDK sisältää kaiken, mitä käännös ja virheenkorjain tarvitsevat, ja kaikki lisätään PATH-muuttujaan automaattisesti Makefilen toimesta:

Komponentti

Tarkoitus

ARM GNU -työkaluketju (arm-none-eabi-gcc 14.3)

Kääntäjä, linkkeri, arm-none-eabi-gdb virheenkorjaukseen

LLVM/clang

Käytetään valittuihin objekteihin joillakin porteilla

CMake, GNU Make

Valmistajien kirjastojen käännösten orkestrointi

Python (siirrettävä)

Käännösskriptit, mpy-cross-apuohjelmat, allekirjoitus, mallityökalut

STM32CubeProgrammer (STM32_Programmer_CLI)

SWD-flash-kirjoitus ja STM32N6:n palautusvuo

ST Edge AI

Neuroverkkokääntäjä STM32N6:n NPU:lle

dfu-util

USB DFU -flash-kirjoitus

gdbrunner

make debug -kohteen GDB-palvelimen käynnistin (sen ajama Segger J-Link -ohjelmisto on erillinen asennus)

Varoitus

OpenMV N6 ja OpenMV AE3 käyttävät Cortex-M55-ytimiä ja vaativat GCC 14.3:n tai uudemman. Käännös valvoo tätä näiden kohteiden osalta ja keskeytyy virheellä ”Upgrade to GCC 14.3+ for proper CM55 support”, jos PATH-muuttujassa löytyy vanhempi arm-none-eabi-gcc ennen SDK:n omaa. Mukana toimitettu SDK-työkaluketju täyttää tämän jo; virhe tarkoittaa, että jokin toinen, vanhempi työkaluketju varjostaa sitä.