14.1.1.1. Geliştirme ortamını kurma¶
Derleme yapabilmeniz için ana makinede üç şeye ihtiyacınız var: bir düzenleyici (hata ayıklayıcı buna entegre olduğu için VS Code önerilir), Linux türünde bir kabuk (Windows’ta WSL, Linux/macOS’ta yerel) ve sabitlenmiş SDK çıkarılmış OpenMV deposu.
14.1.1.1.1. VS Code¶
Aygıt yazılımı geliştirme için herhangi bir düzenleyici işe yarar – derleme yalnızca make ile yapılır ve donanım üzerindeki hata ayıklayıcı da komut satırından çalışır. Visual Studio Code yalnızca en kolay yoldur: Aygıt yazılımının hata ayıklaması kurulumu onun Cortex-Debug uzantısına entegre olur, bu nedenle VS Code kuruluyken bu sayfaların geri kalanı hem derleme hem de hata ayıklama için kutudan çıktığı gibi çalışır.
14.1.1.1.1.1. VS Code’u kurma¶
Windows – yükleyiciyi code.visualstudio.com adresinden indirin ve çalıştırın. VS Code’u WSL içinde değil, Windows üzerine kurun; WSL uzantısı aracılığıyla WSL ile entegre olur, kullanıcı arayüzünü Windows’ta çalıştırırken derleyici, dosyalar ve hata ayıklayıcı Linux’ta bulunur.
macOS –
.zipdosyasını code.visualstudio.com adresinden indirin, açın ve Visual Studio Code.app dosyasını/Applicationsklasörüne sürükleyin. Veyabrew install --cask visual-studio-code.Linux –
.deb/.rpmdosyasını code.visualstudio.com adresinden kurun (örn.sudo apt install ./code_*.deb) veya dağıtımın Snap/Flatpak’ini kullanın.
Kurulacak uzantılar (Uzantılar panelinden, Ctrl+Shift+X):
C/C++ (
ms-vscode.cpptools) – C kaynak gezinmesi ve IntelliSense.Cortex-Debug (
marus25.cortex-debug) – GDB ve bir J-Link / OpenOCD sunucusu aracılığıyla çip üzerinde hata ayıklama. Aygıt yazılımının hata ayıklaması için gereklidir.WSL (
ms-vscode-remote.remote-wsl) – yalnızca Windows. VS Code’un WSL dağıtımınızın içindeki bir klasörü açmasını sağlar, böylece düzenleyici, terminal, IntelliSense ve Cortex-Debug’ın tümü Linux’ta çalışır. Bağlandıktan sonra C/C++ ve Cortex-Debug uzantılarını bir kez WSL ana makinesine kurun (VS Code bunu sizden ister).
14.1.1.1.2. Ana makine kabuğu¶
git ve birkaç temel araca sahip bir Linux (x86-64) veya macOS (arm64) ortamına ihtiyacınız var. İşletim sisteminize uygun bölümü seçin.
14.1.1.1.2.1. Windows: WSL kurma¶
WSL, Windows üzerinde gerçek bir Ubuntu kullanıcı alanı çalıştırır. Kurulduktan sonra, bu kılavuzdaki sonraki tüm talimatlar yerel Linux ile aynıdır.
PowerShell’i Yönetici olarak açın (Başlat’a sağ tıklayın -> Terminal (Admin)).
Varsayılan Ubuntu dağıtımıyla WSL’yi kurun:
wsl --installBu, gerekli Windows özelliklerini etkinleştirir, WSL 2 çekirdeğini kurar ve Ubuntu’yu kurar. İstenirse yeniden başlatın.
Yeniden başlatmanın ardından Ubuntu açılır ve bir UNIX kullanıcı adı ile parola oluşturmanızı ister. Bu hesap Windows hesabınızdan bağımsızdır.
Dağıtımı güncelleyin:
sudo apt update && sudo apt upgrade -yWSL 2 üzerinde olduğunuzu doğrulayın (gereklidir – bu iş akışı için WSL 1 desteklenmez). PowerShell’de:
wsl --list --verboseVERSIONsütunu2demelidir.1diyorsa, onu dönüştürün:wsl --set-version Ubuntu 2
Tüyo
Linux dosya sistemi içinde (WSL’de ~/) çalışın, /mnt/c/ altında değil. Windows’a bağlı sürücüde derleme yapmak çarpıcı şekilde daha yavaştır ve dosya izni ile satır sonu sorunlarına neden olabilir. Depoyu WSL ana dizininize klonlayın.
Projeyi daha sonra açmak için: bir kabuk için Başlat menüsünden Ubuntu‘yu başlatın veya Windows’taki VS Code’dan Ctrl+Shift+P -> WSL: Connect to WSL tuşlarına basın, ardından File -> Open Folder ile Linux dosya sistemindeki klonlanmış depoyu seçin.
14.1.1.1.2.2. Linux / WSL ön koşulları¶
SDK derleyiciyi sağlar, bu nedenle yalnızca birkaç ana makine paketi gereklidir:
sudo apt-get update
sudo apt-get install git build-essential
14.1.1.1.2.3. macOS ön koşulları¶
Yerel derleme yalnızca Apple-silikon (arm64) macOS üzerinde desteklenir. Homebrew kullanarak:
brew install bash make coreutils
(Intel mac’ler desteklenen bir yerel derleme ana makinesi değildir – Aygıt yazılımını derleme sayfasındaki Docker derlemesini veya bir Linux VM’sini kullanın.)
14.1.1.1.3. Kaynağı alma¶
Depoyu tüm alt modüllerle birlikte klonlayın (MicroPython, CMSIS, üretici sürücüleri vb.):
git clone --recursive https://github.com/openmv/openmv.git
cd openmv
Tam özyinelemeli bir klon büyüktür. Daha hızlı, sığ bir klon için:
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
Not
Belirli bir kart derlerken, bunun yerine make‘in yalnızca o kartın alt modüllerini çekmesine izin verebilirsiniz:
make TARGET=<board> submodules
Yukarıda gösterilen açık git submodule update zaten her şeyi kapsar, bu nedenle bu adım isteğe bağlıdır.
14.1.1.1.4. OpenMV SDK’yı kurma¶
Depo kök dizininden, tek seferlik SDK kurulumunu çalıştırın:
make sdk
Bu, download.openmv.io adresinden openmv-sdk-<version>-<os>-<arch>.tar.xz dosyasını indirir, SHA-256 sağlama toplamını doğrular ve ~/openmv-sdk-<version>/ dizinine çıkarır (sürüm, deponun SDK_VERSION dosyası tarafından sabitlenir). İşlem idempotenttir – doğru sürüm zaten kuruluysa yeniden çalıştırmak hiçbir şey yapmaz ve eksikse veya yanlış sürümse normal derleme “OpenMV SDK not found. Run ‘make sdk’ to install it.” ile durur.
SDK, derlemenin ve hata ayıklayıcının ihtiyaç duyduğu her şeyi içerir; tümü Makefile tarafından otomatik olarak PATH‘e eklenir:
Bileşen |
Amaç |
|---|---|
ARM GNU araç zinciri ( |
Derleyici, bağlayıcı, hata ayıklama için |
LLVM/clang |
Bazı portlarda seçili nesneler için kullanılır |
CMake, GNU Make |
Üretici kütüphaneleri için derleme orkestrasyonu |
Python (yeniden konumlandırılabilir) |
Derleme betikleri, |
STM32CubeProgrammer ( |
SWD flash işlemi ve STM32N6 kurtarma akışı |
ST Edge AI |
STM32N6 NPU için sinir ağı derleyicisi |
|
USB DFU flash işlemi |
|
|
Uyarı
OpenMV N6 ve OpenMV AE3, Cortex-M55 çekirdekleri kullanır ve GCC 14.3 veya daha yenisini gerektirir. Derleme, bu hedefler için bunu zorunlu kılar ve PATH üzerinde SDK’nınkinden önce daha eski bir arm-none-eabi-gcc bulunursa “Upgrade to GCC 14.3+ for proper CM55 support” hatasıyla durur. Birlikte gelen SDK araç zinciri bunu zaten karşılar; hata, farklı, daha eski bir araç zincirinin onu gölgelediği anlamına gelir.