top of page

Gömülü yazılım nedir?

Gömülü yazılım, denetim makineleri ve bilgisayar sayılmayan aygıtlar için yazılmış yazılımlardır. Gömülü yazılımlar genellikle çalıştırılacakları donanıma göre özelleştirilir, zaman ve bellek kısıtlamalarına sahiptir. "Gömülü yazılım" terimi bazen firmware terimi ile beraber kullanılır, fakat firmware bir bilgisayardaki, üstünde bir işletim sisteminin çalıştığı ROM tabanlı koda uygulanabilir. Oysaki, gömülü yazılım genellikle aygıttaki tek yazılım olarak bulunur.





Gömülü yazılımların belirgin ve değişmez bir özelliği ise, bu yazılımların çoğu işlevlerinin kullanıcı arayüzü değil, bilgisayar arayüzü aracılığıyla gerçekleştirilmesi ve denetlenmesidir.


İmalatçı firmalar, gömülü yazılımlarını arabalar, telefonlar, modemler, robotlar, elektronik tehçizatlar, oyuncaklar, güvenlik sistemleri, kalp pilleri, televizyonlar ve set üstü cihazlar, dijital saatler gibi ürünlerinin içine yerleştirmektedir. Bu yazılım işlem karmaşıklığı Yaklaşık Değer Hesaplama sistemi (Rasgeleleştirilmiş algoritmaları baz alan bir yöntem) kullanılarak belirlenmiş, birkaç kilobaytlık hafızaya sahip olan bir 8-bit mikrodenetleyicide çalıştırılan bir ışıklandırma kontrolü kadar basit olabilirken, uçaklar, füzeler ve süreç denetimi sistemlerindeki uygulamarında çok daha karışık bir halde bulunabilirler.


Uygulama yazılımından farkları

Çoğu tüketiciler, bilgisayara işlevsellik kazandıran uygulama yazılımlarına aşinadır. Gömülü yazılımlar ise, bu tür yazılımlardan daha basit olmamasına karşın, tüketicinin kullanımında daha az oranda görünür. Uygulama yazılımlarından farklı olarak gömülü yazılımlar kalıplaşmış, sabit donanım gereksinimlerine ve yeteneklerine sahiptir, üçüncü parti yazılım ve donanımların ilavesi katı bir şekilde kısıtlanmıştır.


Gömülü yazılımlar, gerekli tüm aygıt sürücülerini üretim esnasında içermek zorundadır ve bu sürücüler özelleştirilmiş donanımlara göre oluşturulur. Yazılım ise CPU ve özel olarak seçilen yongalara bağlı olarak yüksek derecede bağımlılık gösterir. Çoğu gömülü yazılım mühendisleri şema analizi ve bileşenlerin, girdi ve iletişim sistemlerinin kullanımını belirlemekte kullanılan veri sayfalarının analizi konusunda mutlaka geçmiş tecrübeye sahiptir. Ondalık, onaltılık ve ikili veri türlerinin dönüşümü bit manipülasyonu tekniğinin kullanımı kadar kullanışlıdır.


Web uygulamaları nadir sıklıkla kullanılmaktadır, fakat XML dosyaları ve benzer çıktılar görüntüleme amacıyla bir bilgisayara aktarılabilir. Klasör içeren dosya sistemleri, SQL veritabanlarının olduğu gibi genellikle bulunmamaktadır.


Yazılım geliştirme işlemi, kodu bilgisayarda çalıştırabilen, ayrıca çalıştırılabilir kodu hedeflenen aygıta göre derleyebilen bir çapraz derleyici gerektirir. Hata ayıklama işleminde bir devre içi emulatör, JTAG veya SWD'nin kullanımı mecburidir. Yazılım geliştiricilerinin çoğu zaman kernel (İS) kodunun tamamına erişim imkânı vardır.


Depolama hafızasının ve RAM'in boyutu büyük ölçüde değişiklik gösterebilir. Bazı sistemler 16 KB Flash hafıza, 4KB RAM ve 8 MHz frekansla çalışan bir işlemciyle çalışırken, bazı sistemler donanım konusunda günümüz bilgisayarlarını geçebilir. Bu tür hafıza gereksinimleri C++ yerine C veya Embedded C++ dillerinin daha fazla kullanımını gerektirebilir. BASIC gibi yorumlanan diller ( Parallax Propeller gibi aygıtların kullandığı derlenen BASIC dışında) ve Java (Java ME Embedded 8. ARM Cortex-M4, Cortex-M7 mikrodenetleyicileri ve Raspberry Pi and Intel Galileo Gen. 2'de kullanılan eski ARM11 mikrodenetleyiciler için mevcuttur.) dillerinin kullanımı yaygın değildir; fakat yorumlanan bir dil olan Python 3 dilinin mikrodenetleyicilere özel uygulaması MicroPython özellikle 32-bit ARM-tabanlı mikrodenetleyici (Örneğin BBC micro:bit gibi) ve 16-bit PIC mikrodenetleyici kullanımına açıktır.

bottom of page