Nuvoton NuMicro projelerini VS Code içinden oluşturur, derler, doğrulayarak yükler ve hata ayıklar. ARM için GCC/Keil, desteklenen 8051 parçaları için SDCC kullanır. Proje listesi, favoriler, Debug/Release, derleme/linker ayarları, clock/pin editörü ve statik analiz/host testleri içerir.
Hızlı kurulum
Windows x64 veya Linux x64, VS Code 1.85+ gerekir. Hazır .vsix varsa Extensions → … → Install from VSIX seçin; Go ve Node.js gerekmez:
code --install-extension "paketin-tam-yolu.vsix" --force
Eklenti kendi CLI'sini ve MCU verilerini taşır; bmtool.binaryPath ayarını boş bırakın. Git, CMake, Ninja, derleyici ve flash/debug araçları ayrıca kurulur. Aşağıdaki adımlar kaynaktan kurulum içindir; depoya erişiminiz olmalıdır.
Geliştirirken her değişiklikte sürüm artırmanız gerekmez. Yeni yerel sürüm için BM Tool panelinin başlığındaki ⚙ Ayarlar menüsünden (veya komut paletinden BM: Ayarlar) BM Güncelle'yi seçin; proje açık olmasa da çalışır, ilk kullanımda kaynak depoyu seçin. Go/Node.js/npm ile testler ve paketleme çalışır, eklenti kurulur; ardından pencereyi yeniden yükleyin.
Windows — PowerShell
WinGet yoksa Microsoft Store'dan App Installer kurun. Gerekli araçları indirip kurun:
$packages = 'Microsoft.VisualStudioCode','Git.Git','GoLang.Go',
'OpenJS.NodeJS.LTS','Kitware.CMake','Ninja-build.Ninja',
'Arm.GnuArmEmbeddedToolchain'
foreach ($id in $packages) {
winget install --id $id --exact --accept-package-agreements --accept-source-agreements
}
VS Code'u yeniden açın, yeni terminalde devam edin. Kaynaktan kurulumda Go 1.26.6+, Node.js 22+ gerekir.
git clone https://github.com/Mehmet-Demirbas/BM_TOOL.git
Set-Location BM_TOOL
Set-ExecutionPolicy -Scope Process Bypass
.\install.ps1
Betik CLI'yi %LOCALAPPDATA%\bmtool\bin altına kurar, PATH ve BMTOOL_HOME ayarlarını yapar, yeni VSIX'i üretip yükler. VS Code'da Developer: Reload Window çalıştırın.
Komut bulunamazsa aşağıdaki yardımcıyla dizini PATH'e ekleyin. Yolları kendi kurulumunuza göre değiştirin; GCC dizini arm-none-eabi-gcc.exe ve arm-none-eabi-gdb.exe içermelidir.
function Add-UserPath([string]$dir) {
$old = [Environment]::GetEnvironmentVariable('Path', 'User')
if (($old -split ';') -notcontains $dir) {
[Environment]::SetEnvironmentVariable('Path', "$old;$dir", 'User')
}
if (($env:Path -split ';') -notcontains $dir) { $env:Path += ";$dir" }
}
Add-UserPath "$env:LOCALAPPDATA\Programs\Microsoft VS Code\bin"
Add-UserPath "$env:LOCALAPPDATA\Microsoft\WinGet\Links"
Add-UserPath 'C:\Program Files\Go\bin'
Add-UserPath 'C:\Program Files\nodejs'
Add-UserPath 'C:\Program Files\Git\cmd'
Add-UserPath 'C:\Program Files\CMake\bin'
$env:ARM_GCC_BIN = 'C:\Tools\arm-gnu-toolchain\bin'
[Environment]::SetEnvironmentVariable('ARM_GCC_BIN', $env:ARM_GCC_BIN, 'User')
Add-UserPath $env:ARM_GCC_BIN
Linux x64 — Ubuntu/Debian, Bash
sudo apt update
sudo apt install -y git curl ca-certificates xz-utils cmake ninja-build \
build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi gdb-multiarch
curl -fL https://update.code.visualstudio.com/latest/linux-deb-x64/stable -o /tmp/bmtool-code.deb
sudo apt install -y /tmp/bmtool-code.deb
# Go ve Node.js yalnız kaynaktan kurulum için:
mkdir -p "$HOME/.local/lib/go1.26.8"
curl -fL https://go.dev/dl/go1.26.8.linux-amd64.tar.gz -o /tmp/bmtool-go.tar.gz
tar -xzf /tmp/bmtool-go.tar.gz -C "$HOME/.local/lib/go1.26.8"
curl -fL https://nodejs.org/dist/latest-v24.x/SHASUMS256.txt -o /tmp/bmtool-node-sha.txt
node_archive=$(awk '$2 ~ /linux-x64.tar.xz$/ {print $2}' /tmp/bmtool-node-sha.txt)
curl -fL "https://nodejs.org/dist/latest-v24.x/$node_archive" -o "/tmp/$node_archive"
mkdir -p "$HOME/.local/lib/node"
tar -xJf "/tmp/$node_archive" -C "$HOME/.local/lib/node" --strip-components=1
printf '\nexport PATH="$HOME/.local/lib/go1.26.8/go/bin:$HOME/.local/lib/node/bin:$HOME/.local/bin:$PATH"\n' >> "$HOME/.profile"
export PATH="$HOME/.local/lib/go1.26.8/go/bin:$HOME/.local/lib/node/bin:$HOME/.local/bin:$PATH"
git clone https://github.com/Mehmet-Demirbas/BM_TOOL.git
cd BM_TOOL
sh ./install.sh
printf '\nexport BMTOOL_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/bmtool/0.5.12"\n' >> "$HOME/.profile"
export BMTOOL_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/bmtool/0.5.12"
İndirmeler VS Code, Go ve Node.js resmi kaynaklarından yapılır. PATH'in masaüstünden açılan VS Code'a geçmesi için oturumu kapatıp açın. Diğer dağıtımlarda paket yöneticisi komutlarını uyarlayın. ARM GDB yoksa gdb-multiarch kullanılır.
Flash/debug ve isteğe bağlı araçlar
ARM için Nuvoton OpenOCD gerekir. Windows'ta NuEclipse/OpenOCD ve Nu-Link USB sürücülerini üretici paketinden yükleyin. Keil/ArmClang, SDCC ve NuLink Command Tool gerekiyorsa ilgili üretici kurulumunu kullanın; indirme sayfalarını şu komutlarla açabilirsiniz:
Start-Process 'https://www.nuvoton.com/tool-and-software/ide-and-compiler/'
Start-Process 'https://www.nuvoton.com/tool-and-software/software-tool/programmer-tool/'
Start-Process 'https://www.keil.com/download/' # Yalnız Keil için
# Yalnız kurduğunuz araçları ekleyin; yolları kurulumunuza göre düzeltin:
$tools = @{
OPENOCD_NUVOTON = 'C:\Program Files (x86)\Nuvoton Tools\OpenOCD'
ARMCLANG_BIN = 'C:\Keil_v5\ARM\ARMCLANG\bin'
SDCC_BIN = 'C:\Program Files (x86)\Nuvoton Tools\Toolchain\SDCC\bin'
NULINK_DIR = 'C:\Program Files (x86)\Nuvoton Tools\NuLink Command Tool'
}
foreach ($name in $tools.Keys) {
[Environment]::SetEnvironmentVariable($name, $tools[$name], 'User')
Set-Item "Env:$name" $tools[$name]
}
OPENOCD_NUVOTON altında bin/ ve scripts/; diğer değişkenlerde executable'ları içeren dizin bulunmalıdır. Bu değişkenlerle seçilen araçları ayrıca PATH'e eklemek gerekmez. Keil ayrı lisans gerektirir.
Linux'ta Nuvoton OpenOCD'yi Nu-Link HLA/CMSIS-DAP desteğiyle kurun:
sudo apt install -y autoconf automake libtool pkg-config libusb-1.0-0-dev libhidapi-dev
mkdir -p "$HOME/.local/src"
git clone --recursive https://github.com/OpenNuvoton/OpenOCD-Nuvoton.git "$HOME/.local/src/openocd-nuvoton"
cd "$HOME/.local/src/openocd-nuvoton"
./bootstrap
./configure --prefix="$HOME/.local/openocd-nuvoton" --enable-nulink --enable-cmsis-dap
make -j"$(nproc)" && make install
ln -sfn share/openocd/scripts "$HOME/.local/openocd-nuvoton/scripts"
sudo install -m 644 contrib/60-openocd-nuvoton.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
printf '\nexport OPENOCD_NUVOTON="$HOME/.local/openocd-nuvoton"\n' >> "$HOME/.profile"
export OPENOCD_NUVOTON="$HOME/.local/openocd-nuvoton"
# İsteğe bağlı 8051 derleyicisi / analiz araçları:
sudo apt install -y sdcc cppcheck clang clang-tidy libclang-rt-dev
Nu-Link'i çıkarıp takın. Linux'ta 8051 derlenebilir; 8051 flash yalnız Windows/NuLink Command Tool ile çalışır. 8051 canlı debug ve ARM yapılandırma/analiz editörleri desteklenmez. Windows analiz araçları için winget install --id Cppcheck.Cppcheck --exact ve winget install --id LLVM.LLVM --exact kullanın; clang-tidy ve cppcheck dizinlerini yukarıdaki yardımcıyla PATH'e ekleyin.
Windows host testleri / ASan + UBSan için LLVM-MinGW kurulumu
$release = Invoke-RestMethod 'https://api.github.com/repos/mstorsjo/llvm-mingw/releases/latest'
$asset = $release.assets | Where-Object name -Like '*ucrt-x86_64.zip' | Select-Object -First 1
Invoke-WebRequest $asset.browser_download_url -OutFile "$env:TEMP\bmtool-llvm.zip"
Expand-Archive "$env:TEMP\bmtool-llvm.zip" "$env:LOCALAPPDATA\bmtool\tools" -Force
$env:BMTOOL_HOST_LLVM_BIN = Join-Path "$env:LOCALAPPDATA\bmtool\tools" ($asset.name.Replace('.zip','') + '\bin')
[Environment]::SetEnvironmentVariable('BMTOOL_HOST_LLVM_BIN', $env:BMTOOL_HOST_LLVM_BIN, 'User')
LLVM-MinGW host test derleyicisidir; ARM firmware derleyicisini değiştirmez.
VS Code'da ilk proje
code --install-extension ms-vscode.cpptools
code --install-extension marus25.cortex-debug
code --install-extension spencerwmiles.vscode-task-buttons
- Sol çubuktan BM Tool → Yeni Proje açın; tam MCU parçasını, proje adını ve üst klasörünü seçin.
- Yalnız kurduğunuz derleyiciyi seçin. BM-LIB özel deposuna erişiminiz yoksa kapatın; LVGL isteğe bağlıdır.
- Oluşturulan
<proje>.code-workspace dosyasını açın. GCC Build / Keil Build derler; Config Debug/Release ve ⚙ derleme/linker ayarlarını, BM clock/pin editörünü açar.
- ARM için Nu-Link'i bağlayıp F5 veya panelde Hata ayıkla kullanın. 8051 için SDCC Build → SDCC Flash görevlerini çalıştırın. Diğer flash/provision görevlerine Terminal → Run Task ile erişilir.
- Analiz ekranından kapsamı seçip statik analiz veya host testlerini başlatın. Host testleri MCU'da çalışmaz. Sonuçlar editör, Problems ve Output → BM Tool kanalında görünür.
Clock/pin özellikleri MCU'ya göre değişir; kesin pin/core-clock düzenlemesi yalnız modellenmiş parçalarda açılır. Katalog kaydı fiziksel doğrulama anlamına gelmez; Cortex-M33/M55 flash/debug bu backend'de desteklenmez. Boot/Factory/Recovery görevleri boot/CONFIG alanlarını değiştirebilir; günlük APP görevi desteklenen yerleşimde boot'u korur ve imajı doğrular.
Sorun giderme: kaynak kurulumunda proje kökünde bmtool doctor --strict --compiler gcc --build-type debug; debug için ayrıca --debug, analiz için bmtool doctor --analysis --strict çalıştırın. Hazır VSIX'te ayrıntılı neden Output → BM Tool kanalındadır. Araç/PATH değişikliğinden sonra VS Code'u yeniden açın; eski CLI override'ı varsa bmtool.binaryPath değerini temizleyin.
Güncelleme: repoda git pull ve işletim sisteminizin kurulum betiği; hazır pakette yeni VSIX. Kullanıcı projeleri otomatik dönüştürülmez. Lisanslar LICENSE dosyasındadır.