Makale Özeti

Artık gömülü sistemler içinde uygulama geliştirebileceksiniz. Hemde C# ile. İşte Microsoftun gömülü sistemler için geliştirdigi yeni uygulama geliştirme konsepti.

Makale


Bill Gates 2003 yılının Temmuz ayında Las Vegas da Consumer Electronics Show (CES) etkinliginde SPOT (Smart Personel Objects Technology) adı verilen teknolojiyi duyurarak günlük hayatın her noktasında kullandığımız her cihaza (kol saatinden, buzdolabına) yazılım enjekte edilebileceğini duyurdu. Microsoft, 2007 yılında bu teknolojiyi .Net Micro Framework olarak değiştirdi ve geliştirdi. 2008 yılında v2.5 ve v3.0 ı duyurarak gömülü sistemler pazarına düşük enerji tüketimli 32 bitlik işlemciler ile Memory Management Unit (MMU) olmadan kullanılabilen bir platform sundu.

Micro Framework, Microsoft’un gömülü cihazlar için ürettiği bir uygulama geliştirme platformu. Tıpkı masaüstü uygulaması geliştirir gibi artık gömülü sistemlere de .Net platformu ile (şimdilik yalnızca C# ile) uygulama geliştirebiliriz.

Microsoft’un Windows CE ve .Net Compact Framework ile çözüm üretemediği kapasite sınırlı ve micro sistemler için çözümü Micro Framework. Aslında üzerinde Micro Framework port edilmiş 32-bitlik işlemcilere sahip SBC(Single Board Computer) lar için kendi firmware’inizi yazmanızı sağlıyor. Ve bunu C# managed kod ile gerçekleştiriyorsunuz. Şimdilik native çalışan uygulamalar yapılamıyor, nativekoda interop’lar sayesinde erişiliyor.

.NET Micro Framework yüklü boardlar, kullanıma hazır single-board-computer lar.Tabi hepsi kendi hafıza, ekran, GPIO ve seri portlarını barındırmakta. Framework deki class ve nesneler, cihaz ileyazacağınız kod arasında bir ara katman oluyor.

Böyle olunca, donanımın özellikli kodlarına değil siz yapmak istediğiniz işin koduna odaklanıyorsunuz.

.Net Micro Framework içerisinde mevcut donanıma erişmek için temel sınıf kütüphanelerini sanki bir nesne gibi kullanıyorsunuz. Yazılımınızdan donanımlara nesne yönelimli (OOP) kodlar yazarak erişiyorsunuz.

Bu şekilde donanımdan bağımsız managed kod yazabilir ve yazmış olduğunuz kodun standart kütüphanedekilerini farklı cihazlarda çalıştırabiliyorsunuz.

Ve bu kodu yazarken Visual Studio gibi gelmiş geçmiş en iyi IDE yi ve C# dilini kullanıyorsunuz. İşlemciden hatta single-board-computer dan bagımsız kod yazılabiliyor.

Managed Kod ile Yazmanın Avantajları

-Otomatik hafıza yönetimi(Garbage Collection sayesinde)
-Thread yönetimi ve senkronizasyonu
-Exception handling (istisnai durum yakalayıcısı)
-Veri tipi güvenligi
-Debug hizmeti

.Net Compact framework minimum 12 MB RAM ihtiyacı duyarken, Micro Framework için ise 300 KB RAM yeterli oluyor. 27 MHz lik ARM7 işlemcili 384 KB RAM ve 1 MB flash memory e sahip akıllı kol saatleri .Net Micro Framework ile çalışmakta.  .Net Micro Framework için önerilen minimum donanım gereksinimi ise :
                -ARM 7  ailesi  55 MHz CPU
                -8 MB RAM
                -1 MB Flash Memory

.Net  Micro Framework için 32 bitlik işlemci şart. Piyasada 16 bit veya çift 8 bitlik işlemcilerde C veya assembly ile geliştirilen uygulamaların yerini, üretim maliyeti düşük ve çok az enerji harcayan 32 bitlik işlemciler almakta. Bu da onu PIC ve PLC ye bir alternatif yapıyor.

Temel Sınıf ve Donanımlar
MF üzerindeki temel sınıflar
-System.Collections
-System.Diagnostics
-System.Globalization
-System.IO
-System.Reflection
-System.Resources
-System.Runtime
-System.Threading namespaces, tabii yalnızca bunlar değil. Uluslar arası dil desteği, thread desteği, garbage collection ve birçok donanım için managed sürücüler(driver) (bu donanımlar arasında LCD’ler,Universal Asynchronous Receiver/Transmitter (USART),  I2C, General Purpose Input/Output (GPIO), pulse-width modulation (PWM)),  BMP, JPG ve text yaratma desteği mevcut.

.Net Micro Framework ün Avantajları

Gömülü sistemlerde, .Net Micro Framework kullanmanın avantajlarını şu şekilde özetleye biliriz:

-Diğer gömülü sistemlere göre düşük geliştirme maliyeti
-Daha hızlı ürün geliştirme süreci
-Düşük donanım fiyatı
-Küçük donanım boyutları
-Düşük enerji tüketimi
-Belirli bir chipsetine ve donanım üreticisine bağlılığının olmaması
-Microsoft’un gömülü sistemler stratejisinde önemli bir yer alması

Bunların dışında diğer sistemlerden en belirgin özellikleri ise:

-Managed kod 
-C# gibi modern ve gelişmiş bir dil kullanmak
-.Net in gömülü sistemler için zengin sınıf kütüphanesi
-Donanım sürücü(driver)leri ile çeşitli donanımlara erişim
-Visual Studio gibi birinci sınıf geliştirme ortamı
-Ek yapıla bilen emulatör ile hızlı prototip geliştirip debug yapabilme
-Cihaz üzerinde online debug yapabilme

Bootable Runtime Environment

.Net Micro Framework ün yüklü olduğu cihazlarda bir işletim sistemine gerek kalmıyor.  .Net Micro Framework direk cihaz üzerinde çalışmakta. Cihazın yaptığı fonksiyonlar aşağıdaki gibi :

-Boot kodu
-Code execution (çalıştırılacak kod)
-Thread Management (Thread Yönetimi)
-Memory Management (Hafıza Yönetimi)
-Donanım I/O

Tam olarak bir işletim sistemi olmasa da, mevcut işletim sistemlerinin bazı fonksiyonlarını yerine getiriyor. O yüzden “bootable runtime environment” deniliyor.

 

.Net Micro Framework ü Nerede Kullanabiliriz?

Microsoftun önerisi şunlar:

-Harici Ekranlar
-Sensor kullanılan uygulamalar
-Sağlık Görüntüleme Cihazları
-Robotics
-Giyilebilen cihazlar
-DataLogger lar 
-Ev Otomasyonları
-Endüstriyel Kontroller
-Para veya jetonla çalışan cihazlar gibi bir şu an endüstride PLC lerle yapılan birçok uygulama Micro Framework ile de geliştirilebilir.

.Net Micro Framework ne yapamaz?

.Net Micro Framework real-time bir sistem değil. Birçok uygulama için oldukça hızlı ve yeterli olsa da, ondan real-time sistem performansı beklememek lazım. 

Yazılımınız içinde kullandığınız bir timer eğer her 250 ms de tetiklenmesi gerekiyorsa, ISR (interrupt service routine) kesme işlemini gerçekleştirip istediğiniz kodu çalıştırmakta birkaç milisaniye geç kalabilir.

Veya Garbage Collector çalışıp hafızada kullanılan alanlarını boşaltırken sizin kodunuzdaki threadler birkaç milisaniye bloke olabilir. Bunla beraber yazdığınız managed kod native koda göre elbette bir miktar daha yavaş çalışacaktır. Güçlü donanımlarla bir nebze bunun önüne geçilebilir. Yazmış olduğunuz managed kodlar her an bir kesme istemiyse kesile bilir. Compiler Just-in-time derleyemediği için kod ilk çalışmaya başladığında tamamıyla derlenmekte.

Özet

Microsoft gömülü sistemler dünyasına iyi bir giriş yaptı. Mevcut otomasyon sistemlerinde MF ile çeşitli çözümler üretilebilir. Veya üretimini yapmak istediğiniz cihazın çekirdeğinde kullanılabilir. Zamanın neler göstereceğini hep birlikte göreceğiz. Gelecekte endüstrideki konumu ne olur şimdiden tahmin etmek çok zor.