Embedded Studio
STM32 için görsel gömülü sistem tasarımı, VS Code içinde.
Sensörleri seç · pinleri ve saati otomatik ata · HAL / bare-metal + FreeRTOS kodu üret · derle, yükle, canlı izle, debug et.
Kurulum ·
Hızlı başlangıç ·
Özellikler ·
Katkı ·
English
Neden Embedded Studio?
Bir sensörü mikrodenetleyiciye bağlamak çoğu zaman şu adımlarla geçer: datasheet'ten alternatif fonksiyon tablosuna bakmak,
çakışan pinleri ayıklamak, saat ağacını hesaplamak, init kodunu yazmak, sonra da her şeyin gerçekten çalıştığını görmek için
seri port çıktısıyla uğraşmak. Embedded Studio bu döngüyü tek bir yerde topluyor:
- 🧩 Komponenti seç, gerisini o ayarlasın. I2C/SPI/UART/ADC/PWM atamaları, alternatif fonksiyonlar ve I2C adres çakışmaları otomatik çözülür.
- ⏱️ CubeMX tarzı saat ağacı. Hedef frekansı yaz, geçerli PLL ayarını o bulsun; sınır aşımları kırmızıyla gösterilir.
- 🛠️ Derlenen kod. STM32 HAL ya da doğrudan register, isteğe bağlı FreeRTOS. CMake + ARM GCC projesi hazır gelir.
- ✍️ Kodun asla ezilmez.
USER CODE blokları korunur; tasarım değişince sadece etkilenen dosyalar güncellenir.
- 🤖 Yapay zekâ ajanlarıyla uyumlu. Claude, ChatGPT/Codex, Gemini ve Copilot için hazır
AGENTS.md / CLAUDE.md / GEMINI.md.
- 📈 Canlı monitör ve debug. 3B IMU, GPS rotası, göstergeler, RTOS task tablosu; register'lar, bellek ve değişkenler.
📦 Kurulum
Kurulum adımları (temsili çizim). Son karedeki sihirbaz eklentinin gerçek ekranıdır.
 1. VS Code'da Uzantılar panelini açın (Ctrl+Shift+X). |
 2. Arama kutusuna Embedded Studio yazın. |
 3. Install (Yükle) düğmesine tıklayın. |
 4. Bir klasör açın, alttaki durum çubuğunda Embedded Studio'ya tıklayın. |
Diğer yollar
- Tarayıcıdan: Marketplace sayfasında Install'a tıklayın.
- Komut satırından:
code --install-extension mhmtakfseckin.embedded-studio
- Kaynaktan: repoyu klonlayıp
node tools/package-vsix.js ile .vsix üretin, VS Code'da
Ctrl+Shift+P → Extensions: Install from VSIX… ile kurun.
Gereksinimler
Tasarım ve kod üretimi için hiçbir şey gerekmez. Derleme, karta yükleme ve kütüphane indirme için şunlar PATH'te olmalı:
🚀 Hızlı başlangıç
- Boş bir klasör açın ve durum çubuğundaki Embedded Studio'ya tıklayın.
- Sihirbazda proje adını, mikrodenetleyiciyi, STM32 HAL / bare-metal ve FreeRTOS seçimini yapın.
- Soldaki kütüphaneden komponent ekleyin ya da alttaki asistana ne yapmak istediğinizi yazın:
"Sıcaklık ve ivme ölçüp OLED ekranda gösteren bir cihaz".
- Kod Üret → Ctrl+Shift+B ile derleyin → Debug sekmesinden Yükle.
- Monitör sekmesinde verileri canlı izleyin.

✨ Özellikler
Tasarım: KiCad tarzı şema
Komponentler mikrodenetleyiciye otomatik bağlanır, kablolar sinyal türüne göre renklenir. Bir pini elle seçerseniz geri kalan
atama ona göre yeniden çözülür. Her değişiklik otomatik kaydedilir.
| Sağ tık menüsü |
Bağlantılar penceresi |
 |
 |
| Bağlantılar, Yönü değiştir (aynala), Datasheet (PDF indirir), Sil. Del / Backspace de çalışır. |
Pinleri seçip Kaydet; Kapat değişiklikleri atar. I2C adresi de buradan seçilir. |
Komponentin üzerine gelince resimli bir bilgi kartı açılır. Alt paneldeki asistan, yazdığınız isteğe göre komponent önerir.
Komponent oluşturucu
Kütüphanede olmayan bir sensörü JSON yazmadan ekleyin. Form solda, canlı şema sembolü, bilgi kartı ve doğrulama sağda.

Clock: saat ağacı

HSI/HSE, PLL (M/N/P/Q), AHB/APB bölücüleri. Otomatik çöz hedef frekans için geçerli ayarı bulur; çevre birimi tablosu UART
baud hatasını, SPI hızını ve timer ön bölücüsünü gösterir. Ayarlar üretilen SystemClock_Config / clock_init koduna yansır.
Kod üretimi
Klasör yapısı kod altyapısına göre değişir:
|
STM32 HAL (CubeMX / CubeIDE ile aynı) |
Bare-metal (sade) |
| Sizin kodunuz (USER CODE blokları) |
Core/Src/app.c, Core/Src/main.c |
src/app.c, src/main.c |
| Başlıklar |
Core/Inc/ |
inc/ |
| Saat, GPIO, çevre birimi init / ortak donanım API'si |
Core/Src/board.c, Core/Src/bsp.c |
src/board.c, src/bsp.c |
| Sadece seçilen sensör sürücüleri |
Drivers/Components/ |
drivers/ |
| CMSIS çekirdek ve cihaz başlıkları |
Drivers/CMSIS/ |
cmsis/core/, cmsis/device/ |
Startup ve system_stm32f4xx.c |
Drivers/CMSIS/Device/…/Templates/ |
startup/ |
| Linker script |
STM32F411CEU6_FLASH.ld |
linker/STM32F411CEU6_FLASH.ld |
| HAL sürücüleri |
Drivers/STM32F4xx_HAL_Driver/ |
— |
| FreeRTOS (açıksa) |
Middlewares/FreeRTOS/ |
rtos/FreeRTOS/ |
Her iki yapıda da: CMakeLists.txt (arm-none-eabi-gcc + Ninja), yapay zekâ ajanları için AGENTS.md / CLAUDE.md ve son tasarım değişikliğini anlatan .embedded-studio/LAST_CHANGES.md.
Altyapıyı Ayarlar sekmesinden değiştirirseniz bir sonraki "Kod Üret"te kendi dosyalarınız ve USER CODE bloklarınız yeni klasörlere taşınır.
Profesyonel modda bare-metal: main.c bir kez oluşturulur ve sizindir, app.c üretilmez. "Kod Üret" sadece sürücüleri, BSP'yi, init ve kesme dosyalarını yazar; önce bir önizleme gösterir (dosya bazında fark görünümü) ve elle değiştirdiğiniz üretilmiş dosyanın üzerine yazmaz (yeni hali .new). Her sürücü başlığında bu projeye göre bir kullanım örneği vardır.
- Tasarım değişmediyse hiçbir dosyaya dokunulmaz.
- Bir sensörü çıkarırsanız sürücüsü kaldırılır ama ona yazdığınız kod silinmez; dosyanın sonunda
#if 0 bloğunda durur.
- Üretilen kod her push'ta Linux'ta ARM GCC ile dört varyantta (HAL / register × RTOS / RTOS'suz)
-Wall -Wextra altında derlenir.
Monitör

Her sensör için uygun görünüm: 3B IMU (uçak modeli ve kırmızı/yeşil/mavi eksenler), GPS rotası, termometre, gösterge, lamba
ve grafik. Widget'ların türünü ve boyutunu değiştirin, sürükleyip sıralayın. FreeRTOS task'larının durumu, boş stack'i ve CPU payı
sağdaki tabloda.
Debug

Simülasyon ya da OpenOCD + ST-Link: durdur, devam, adım, reset; core register'lar ve xPSR bayrakları; bit alanlarıyla
çevre birimi register'ları (yerleşik tanımlar ya da tam CMSIS-SVD); bellek görüntüleyici; ELF'ten değişken izleme.
Okuması bayrak temizleyen register'lar (ör. USART->DR) sadece hedef durduğunda okunur; çalışan firmware'den veri çalınmaz.
🔌 Desteklenenler
|
|
| Mikrodenetleyici |
STM32F411CEU6 (WeAct Black Pill). Diğer STM32F4'ler bir JSON dosyasıyla eklenebilir. |
| Komponentler |
BME280, MPU-6050, SSD1306 OLED, W25Q32 SPI flash, u-blox NEO-6M GPS, USB-UART, LED, buton, potansiyometre, SG90 servo |
| Kod altyapısı |
STM32 HAL · bare-metal (CMSIS register) · isteğe bağlı FreeRTOS |
| Programlayıcı |
ST-Link (OpenOCD) |
🗺️ Yol haritası
- [x] Pin ve saat ataması, HAL / bare-metal + FreeRTOS kod üretimi
- [x] Monitör, debug, komponent oluşturucu
- [ ] Monitörde seri port üzerinden gerçek kart verisi
- [ ] Yeni MCU'lar: STM32F4 ailesinin geri kalanı, STM32G4/L4, ESP32, RP2040
- [ ] LLM destekli asistan ve datasheet'ten komponent taslağı çıkarma
- [x] İngilizce arayüz (VS Code dili İngilizceyse kendiliğinden; ayar:
embeddedStudio.language)
Fikriniz mi var? Özellik isteği açın.
🤝 Katkı
Katkılarınızı bekliyoruz. Kod yazmanız gerekmiyor; en değerli katkılardan bazıları kod dışı:
| Ne yapabilirsiniz |
Nasıl |
| 🐞 Hata bildirin |
Hata bildirimi |
| 🔌 Kartınızda deneyin |
Özellikle ST-Link ile yükleme ve debug. Sonucu bir issue'da paylaşın. |
| 🧩 Komponent ekleyin |
Komponent oluşturucuyla tanımlayın → Dışa aktar → data/components/ altına PR açın |
| 📝 Dokümantasyon / çeviri |
README, rehberler, İngilizce arayüz metinleri |
| 💻 Kod |
Sürücüler, yeni MCU'lar, monitör widget'ları, seri port kaynağı |
Geliştirme ortamı, proje yapısı, kod kuralları ve PR süreci için CONTRIBUTING.md'ye bakın.
Planlanan işler ve öncelikler ROADMAP.md dosyasında; her madde bir GitHub issue olarak da açık. Üzerinde çalışmak istediğiniz issue'ya yorum bırakmanız yeterli.
İlk katkı için good first issue etiketli issue'lar uygun.
git clone https://github.com/k4zmo55/Embedded-Studio.git
cd Embedded-Studio && code . # F5 ile eklentiyi çalıştırın, derleme adımı yok
node test/smoke.js # birim testleri
English
Embedded Studio in English
Embedded Studio is a VS Code extension for visually designing STM32 firmware. Pick the sensors you need and it wires them to
the microcontroller in a KiCad-style schematic, assigns pins and peripherals (alternate functions, conflicts, I2C address
clashes), builds a valid clock tree, and generates a CMake + ARM GCC project using STM32 HAL or bare-metal register
code, optionally with FreeRTOS. Your code inside USER CODE blocks is preserved across regenerations, and generated
AGENTS.md / CLAUDE.md / GEMINI.md files tell AI coding agents which files they may edit.
It also includes a live monitor (3D IMU, GPS track, gauges, RTOS task table), a debugger front-end for OpenOCD + ST-Link
(peripheral registers with bit fields, memory, variable watch) and a component creator for adding your own sensors.
The UI follows your VS Code display language: English, or Turkish when VS Code is in Turkish. You can force it with the
embeddedStudio.language setting (auto, en, tr). Generated code comments and the documentation are still in
Turkish. Contributions are welcome, see CONTRIBUTING.md (in Turkish; feel free to open issues in English).
Lisans
MIT © Mehmet Akif Seçkin