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. Taibrew install --cask visual-studio-code.Linux – asenna
.deb/.rpmosoitteesta 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.
Avaa PowerShell järjestelmänvalvojana (napsauta hiiren oikealla Käynnistä-painiketta -> Terminaali (järjestelmänvalvoja)).
Asenna WSL oletusarvoisella Ubuntu-jakelulla:
wsl --installTämä ottaa käyttöön vaaditut Windows-ominaisuudet, asentaa WSL 2 -ytimen ja asentaa Ubuntun. Käynnistä uudelleen pyydettäessä.
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.
Päivitä jakelu:
sudo apt update && sudo apt upgrade -yVarmista, että käytät WSL 2:ta (vaaditaan – WSL 1:tä ei tueta tässä työnkulussa). PowerShellissä:
wsl --list --verboseVERSION-sarakkeessa täytyy lukea2. Jos siinä lukee1, 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 ( |
Kääntäjä, linkkeri, |
LLVM/clang |
Käytetään valittuihin objekteihin joillakin porteilla |
CMake, GNU Make |
Valmistajien kirjastojen käännösten orkestrointi |
Python (siirrettävä) |
Käännösskriptit, |
STM32CubeProgrammer ( |
SWD-flash-kirjoitus ja STM32N6:n palautusvuo |
ST Edge AI |
Neuroverkkokääntäjä STM32N6:n NPU:lle |
|
USB DFU -flash-kirjoitus |
|
|
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ä.