Gömülü sistemlere yeni başlıyorsanız, muhtemelen birçok terim, bileşen ve işlevle ilgili kafanız karışmış durumda. Bu nedenle, her şeyi daha iyi anlamanızı sağlamak için, umarız bu bilgi notunu oluşturduk!

Elbette, her şeyde olduğu gibi, daha karmaşık bölümlere geçmeden önce temel kavramlarla başlayalım.
Gömülü Sistemler Nedir?

Gömülü sistem, sadece bir sistemi ifade etmez, aynı zamanda onu programlamanızı sağlayan hem donanım hem de yazılım kombinasyonudur. Bu nedenle, daha büyük bir sistem içinde belirli bir işlev veya işlevler için kullanılabilir. Raspberry Pi ve Arduino gibi bazı popüler örnekler bulunmaktadır.
Daha önce belirtildiği gibi, gömülü sistem bir donanım ve yazılım kombinasyonudur. Bu nedenle, bunlarla ilgili her şeyi sonraki bölümde ele alacağız. Ama önce, bir gömülü sistemin yapısına ve temel bileşenlerine bakalım:
Gömülü Sistemlerde Temel Bileşenler
- Güç Kaynağı: Güç olmadan hiçbir sistemin çalışamayacağı aşikardır.
- İşlemci: Gömülü sistemin performansını belirleyen faktördür, 8-bitten 32-bite kadar değişir.
- Hafıza: Salt okunur bellek (ROM) ve Rastgele Erişimli Bellek (RAM) içerir.
- Zamanlayıcı: Tüm zamanlama ve sayma işlevlerini sağlar, bu işlevleri değiştirmek için programlama yapılabilir.
- İletişim Portları: Sistemin diğer gömülü sistemlerle iletişim kurmasını sağlayan arayüzdür, örneğin UART, USB, Ethernet vb.
- Giriş ve Çıkış (I/O): Klavye, fare ve anahtarlar gibi çeşitli cihazları sürmek/arayüz oluşturmak için kullanılır.
Portlar hakkında daha fazla bilgi edinmek isterseniz, bu kılavuza göz atın! Bilgisayar Portları: Türler, İşlevler ve Karşılaştırma
Gömülü Sistem Mimarisi

Yukarıda gömülü sistemin temel yapısı yer almakta, ana bileşenler aşağıdaki gibidir:
- Sensor: Fiziksel bir miktarı ölçer ve elektrik sinyaline dönüştürür, ardından bunu hafızada saklar.
- Analogdan Dijitale Dönüştürücü (ADC): Sensör tarafından gönderilen analog sinyali dijital sinyale dönüştürür.
- İşlemci & ASIC: Verileri değerlendirir, çıktıyı ölçer ve ardından hafızada saklar.
- Dijitaldan Analoğa Dönüştürücü (DAC): İşlemci tarafından verilen dijital verileri analog verilere dönüştürür.
- Aktüatör: DAC tarafından verilen çıktıyı gerçek çıktıyla karşılaştırır ve ardından tam çıktıyı girer.
Gömülü Sistem Türleri

Üç ana gömülü sistem türü vardır:
- Küçük ölçekli: 8 veya 16 bit mikrodenetleyici ile tasarlanmış, pil ile çalışabilen sistemlerdir.
- Orta ölçekli: 16 veya 32 bit mikrodenetleyicilerle tasarlanmış, yazılım ve donanım karmaşıklıkları sunar. Geliştirme için C veya Java vb. kullanılır.
- Gelişmiş: Genellikle birçok yazılım ve donanım karmaşıklığına sahiptir, bu nedenle işlemciler gerektirir. Diğer bileşenler veya yazılım ve donanım, geliştirme sürecinin sonraki aşamalarında birleştirilebilir.
Gömülü Sistem Donanımı
Bir mikroişlemci veya mikroişlem birimi (MPU), bir tek çipli yarı iletken olup, bir CPU işlevini içerir. 64-bit mikroişlemci ayrıca Hızlandırılmış İşlem Birimi (APU) olarak da adlandırılır ve CPU ile GPU’yu birleştirir. Bir mikrodenetleyici (MCU), belirli bir görevi yerine getirmek için tasarlanmış bir tek entegre devre (IC) dir. Bazen daha yüksek kaliteli MCU’larda, bunun yerine bir Sistem Üzerinde Çip (SoC) kullanılır. Alan Programlanabilir Kapı Dizisi veya daha iyi bilinen adıyla FPGA, uygulama spesifik yarı iletken cihazlardır ve farklı kullanımlar için yeniden programlanması gerekir, programlanabilir mantık bileşenleri ve bağlantılar içerir. Temelde, Uygulamaya Özel Entegre Devrelerin (ASIC) prototip versiyonlarıdır, ancak daha ucuz ve daha esnektir. Donanımdan bahsetmişken, gömülü bir sistemde yazılım kısmını kesinlikle atlayamayız! Yazılımınızı oluşturmak için gereken temel bileşenlere bakalım: Her gömülü sistemin kesinlikle bir işletim sistemi olacaktır. Donanım ile son kullanıcı arasında bir arayüz görevi gören önemli bir sistem yazılımıdır. Ancak gömülü işletim sistemi belirli bir amaç için tasarlanmıştır. ThreadX ve IOS gibi birkaç örnek bulunmaktadır. Kernel’in tek ve yegane görevi, donanım ile yazılım arasında köprü olmaktır; bu da iletişimi mümkün kılar. Ayrıca bir işletim sisteminin temel bileşenidir. Programlama dilleri, programcıların gömülü sisteme talimat vermesine olanak tanır. Gömülü sistemin anladığı dil ‘ikili’ olarak da bilinirken, programlama dilini ikiliye çevirme işlemine ‘derleme’ denir. C, C++ ve Python gibi birkaç yaygın dil bulunmaktadır. ‘Merhaba, dünya!’ diyen C programlama kodunun iskeleti şu şekilde görünür: C ve C++ en popüler dillerden bazıları olduğundan, kullanabileceğiniz bazı temel kodlar burada: Bir işletim sistemi ve programlama dili seçtikten sonra, kodunuzu yazmak için bazı araçlar kullanmanız gerekecek! İşte karşılaşacağınız veya ihtiyaç duyacağınız bireysel araçlar: IDE’yi duymuş olabilirsiniz, çünkü bu, programcıların yazılım geliştirmek için yaygın olarak kullandığı bir yazılımdır; dolayısıyla yukarıda bahsettiğimiz tüm araçları bir araya getirir. Ancak IDE genellikle bir metin düzenleyici, bir derleyici, bir bağlayıcı ve bir hata ayıklayıcı içerir. Ve gömülü sistemler hakkında söyleyeceklerimiz bu kadar! Gömülü sistem donanımını ve yazılımını ayrı ayrı ele aldık ve her birinin içindekileri inceledik. Gömülü sistemi daha iyi anlayabilmenizi umuyoruz. Bu konu hakkında daha derinlemesine bilgiye ihtiyacınız olursa, aşağıdaki bağlantılara göz atın! Raspberry Pi Alternatifleri: 2020’deki En İyi 17 Tek Kart Bilgisayar – Kendinize bir gömülü sistem almak mı istiyorsunuz? En iyi tek kart bilgisayarların bir listesini derledik! IoT ve Giyilebilirler için En İyi Arduino Kartları ve Mikrodenetleyiciler (MCU) – Gömülü sistemlerin bir başka derlemesi, ancak bu sefer mikrodenetleyiciler üzerine! ArduPy vs CircuitPython – MicroPython Mikrodenetleyici Programlama için Hangisi Daha İyi? – Hangisinin daha iyi olduğunu mu merak ediyorsunuz? Sizin için daha iyi yazılım uygulamasını karşılaştıracağız! 2020’de Hangi Raspberry Pi Programlama Dilini Kullanmalısınız? Karşılaştırma Rehberi – Raspi hayranı mısınız? Bunun için en iyi programlama dili için bu kılavuza göz atın!
Mikroişlemci

Ana Bileşenler:

Mikrodenetleyici

Ana bileşenler:

Alan Programlanabilir Kapı Dizisi

Ana bileşenler:

Gömülü Sistem Yazılımı
Gömülü İşletim Sistemi

Kernel Nedir?

Programlama Dilleri
#include
int main()
{
printf("Hello, World!");
return 0;
}
Yazılım Geliştirme Araçları
Entegre Geliştirme Ortamı (IDE)

Özet
Önerilen Okumalar
