Rust ile STM32 Gömülü Sistem Programlama Mimarisi
Endüstri 4.0 dönüşümünde sensör verilerini toplayan uç cihazların (edge devices) stabil çalışması her şeyden önemlidir. Yıllarca C ve C++ dilleriyle geliştirdiğimiz firmware yazılımlarında, bellek taşmaları (buffer overflows) gibi risklere karşı katı test senaryoları uyguluyorduk.
Neden Rust?
Rust, mülkiyet (ownership) modeli sayesinde compile-time'da bellek güvenliğini garanti eder. Çöp toplayıcısı (Garbage Collector) olmamasına rağmen, deterministik bellek yönetimiyle tam da gömülü sistemlerin ihtiyacı olan sıfır maliyetli soyutlamayı sunar.
Uygulama Sürecimiz
STM32F4 serisi mikrodenetleyiciler için `cortex-m-rt` ve `stm32f4xx-hal` crate'lerini kullanarak çevre birimi (peripheral) erişimlerini Type-Safe hale getirdik. Bir pini çıkış olarak tanımladığımızda, derleyici o pinden okuma yapmamıza izin vermez. Bu durum donanım arızalarını kod yazım aşamasında engeller.
Performans Karşılaştırması
Elde ettiğimiz derlenmiş binary boyutu saf C ile yazılan versiyona göre %5 daha büyüktü ancak çalışma zamanı kararlılığında (uptime) ulaştığımız kusursuzluk bu maliyeti önemsiz kıldı.