Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek , milyonlarca ürünün katları olarak elde edilebilir.
Gömülü bir sistemin çekirdeğini, belirli bir sayıda görevi yerine getirmek için programlanan mikroişlemciler ya da mikrodenetleyiciler oluşturur. Kullanıcıların üzerinde istediği yazılımları çalıştırabildiği genel maksatlı bilgisayarlardan farklı olarak, gömülü sistemlerdeki yazılımlar yarı kalıcıdırlar ve firmware ismiyle anılırlar.
Gömülü Sistem Örnekleri
- Banka ATM’leri
- Eylemsiz rehber sistemleri, uçuş kontrol donanım/yazılımı ve uçak ve füzelerdeki diğer tümleşik sistemlerden oluşan havacılık elektroniği parçaları
- Yönlendirici (router), timeserver ve güvenlik duvarı (firewall) gibi bilgisayar ağ ekipmanları
- Bilgisayar yazıcıları
- Fotokopi makineleri
- Disket sürücüler (floppy disket sürücüler ve sabit disk sürücüler)
- Termostat, klima, sprinkler ve güvenlik izleme sistemleri gibi ev otomasyonu ürünleri
- Hesap makineleri
- Mikro dalga fırınlar, çamaşır makinesi, televizyon alıcısı ve DVD oynatıcı/kaydedici gibi ev elektroniği ürünleri
- Tıbbi ekipmanlar
- Çok işlevli kol saatleri
- İnternet radyo alıcıları, TV set top box ve dijital uydu alıcılar gibi çokluortam uygulamaları
- Çok işlevli yazıcılar
- PDA’lar gibi küçük avuç içi bilgisayarlar
- PDA ve Java destekli gelişmiş cep telefonları
- Endüstriyel otomasyon ve izleme için PLC'ler
- Video oyun konsolları ve avuç içi oyun konsolları
- Taşınabilir bilgisayarlar
Tarihçe
Kayda değer ilk gömülü sistem MIT Instrumentation Laboratory‘da Charles Stark Draper tarafından geliştirilen Apollo Guidance Computer olmuştur. Aya yapılan yolculuklarda iki tane kullanılırdı ve komuta modülü ve LEM’in eylemsiz rehber sistemlerini çalıştırıyordu.
Projenin başlangıcında Apollo rehber bilgisayarı Apollo projesinin en riskli parçası olarak kabul ediliyordu. O zamanki tek parça entegre devrelerin kullanılması boyut ve ağırlığı azaltıyor ama riski artırıyordu.
İlk kitlesel gömülü sistem üretimi 1961 yılında Minuteman füzesi için yapılan Autonetics D-17 rehber bilgisayarı oldu. Ayrık transistör mantık devresinden yapıldı ve ana bellek için bir harddiski vardı. 1966 yılında Minuteman II üretime girdiğinde, D-17 ilk defa yüksek hacimli tümleşik devrelerin kullanıldığı yeni bir bilgisayara yerini bıraktı. Bu yazılım dörtlü NAND kapılı tümleşik devrelerin birim fiyatını 1000$’dan 3$’a çekti ve ticari kullanımlarının yolunu açtı.
Minuteman bilgisayarının önemli tasarım özellikleri, füzenin hedefi daha hassas bulabilmesi için rehber algoritmasının yeniden programlanabilir olması ve bilgisayarın kablo ve konnektörden tasarruf sağlayarak füzeyi test edebilmesiydi.
Maliyetin dikkate alınmadığı 1960’lardaki bu ilk uygulamalardan itibaren gömülü sistemlerin fiyatları düşmeye başladı. Bunlarla birlikte işlem gücü ve işlevsellikte de yükseliş oldu.
İlk mikroişlemci hesap makineleri ve diğer ufak sistemlerde kullanılan Intel 4004 oldu. Çalışabilmesi için harici bellek yongaları ve harici destek lojiklerine ihtiyaç duyuyordu. Intel 8080 gibi daha güçlü mikroişlemciler askeri projelerde geliştirildi, ama diğer kullanıcılara da satıldı.
1970'lerin sonunda 8-bit mikroişlemciler standart olmakla birlikte çözümleme ve giriş/çıkış işlemleri için genellikle harici bellek yongaları ve lojiklere ihtiyaç duyuyorlardı. Öte taraftan, fiyatlar hızla düşüyor ve uygulamalar küçük gömülü sistemleri lojik tasarımların içine sokuyordu. Görünebilir uygulamaların bir kısmı enstrümantasyon ve pahalı aygıtlardı.
1980’lerin ortalarında harici olarak kullanılan sistem parçaları, işlemci ile beraber aynı yonganın içine girmeye başladı. Bunun sonucu olarak boyutta ve gömülü sistemlerin maliyetinde çok büyük düşüşler oldu. Bu tip tümleşik devrelere mikroişlemci yerine mikrokontrolör dendi ve gömülü sistemlerin yaygın bir şekilde kullanımı mümkün oldu.
Mikrokontrolör maliyeti bir mühendisin 1 saatlik maaşının altına indi ve bu gömülü sistemlerin sayısını ve gömülü sistemlerde kullanılmak üzere farklı şirketler tarafından üretilen parçaların sayısının patlamasına neden oldu. Örneğin, pek çok yeni özelliğe sahip IC’ler, geleneksel paralel programlama arayüzleri yerine mikrokontrolörlere daha az sayıda arabağlantı sağlayan seri programlama arayüzleri ile beraber gelmeye başladı. I2C‘nin çıkış zamanı da bu döneme rastlamaktadır. Mikrokontrolörler 1$’ın altına düştüğünde, voltmetre ve değişken kapasitör gibi pahalı analog elemanların yerlerini küçük bir mikrokontrolör ile kontrol edilen dijital elektronik elemanlara bırakması mümkün oldu.
80’lerin sonundan itibaren, tüm elektronik cihazlar için gömülü sistemler bir istisna değil bir standart haline geldi ve bu akım halen devam etmektedir.
Karakteristikler
Gömülü sistemler en geniş manasıyla bilgisayar sistemidir. Gömülü sistemlerin örnekleri taşınabilir müzik çalıcılardan uzay araçlarındaki altsistemler için kullanılan gerçek zamanlı kontrol sistemlerine kadar uzanır. En ticari gömülü sistemler, düşük maliyette bir takım işleri gerçekleştirmek için tasarlanıyor. Hepsi olmamakla birlikte büyük çoğunluğunun gerçek zamanlı sistem kısıtlamalarını karşılaması gerekir. Bazı işlevlerinin çok hızlı olması gerekebilirken, diğer pek çok işlevinin kesin zamanlama gereksinimi olması gerekmemektedir. Bu tip sistemler, gerçek zaman kısıtlarını sistem gereksinimlerine bağlanmış özel amaçlı yazılım ve donanım kombinasyonları ile karşılarlar.
Gömülü sistemleri hız ve maliyet ile karakterize etmek zor olmakla beraber, maliyeti azaltan yüksek hacimli sistemler öncelikli tasarım hedefidir. Genellikle gömülü sistemlerin düşük verim gereksinimleri olur. Bu sistem donanımını, maliyeti düşürmek için basitleştirme olanağı tanır. Mühendisler gerekli işlevleri sağlayan “yeteri kadar iyi” olan donanımları seçerler.
Örneğin, uydu televizyon için dijital bir set-top box’ ın saniyede onlarca megabit veri işlemesi gerekir ama bu işlemlerin büyük bölümü çok kanallı dijital videoyu ayrıştıran, yönlendiren ve çözen özel tümleşik devreler tarafından gerçekleştirilir. Gömülü CPU bu işlemi kurar ve set box’ın kullanıcı ara yüzü gibi görsel öğelerini ekrana basar. Gömülü işlemcilerin hızları artıp, fiyatları ucuzlarken, yüksek hızlı veri işlemede öncülüğü daha fazla ele almaktadırlar.
Düşük hacimli gömülü sistemler için kişisel bilgisayarlar, yazılımları sınırlayarak ya da işletim sistemini gerçek zamanlı işletim sistemiyle değiştirerek kullanılabilir. Bu durumda özel amaçlı donanım bir ya da daha fazla yüksek verimli CPU ile değiştirilebilir. Bazı gömülü sistemler istenen görevleri yerine getirmek için, yüksek performanslı CPU, özel donanım ya da büyük belleklere ihtiyaç duyabilir.
Taşınabilir müzik çalıcılar ve cep telefonları gibi büyük hacimli gömülü sistemlerde, maliyeti düşürme yönünde yapılan çalışmalar öncelik kazanır. Bu sistemler genellikle birkaç tümleşik devre, bütün fonksiyonları kontrol eden tümleşik CPU ve tek bir bellek yongası içerirler. Bu tasarımlarda her bir eleman bütün sistem maliyetini düşürecek şekilde seçilir ve tasarımları bu şart altında yapılır.
Bir disk sürücüsü olmayan gömülü sistemler için yapılan yazılıma firmware adı verilir. Firmware yazılımları cihazın içinde bir ya da daha fazla ROM ya da flaş bellek yongalarında gömülü olarak bulunur. Gömülü sistemlerdeki yazılımlar genellikle pek çok donanım kaynağından mahrum bir şekilde çalışırlar. Genellikle bu tip sistemlerde disket sürücü, işletim sistemi, klavye ya da ekran yoktur. Eğer bir kullanıcı arayüzü var ise küçük bir klavye ya da LCD gerekebilir.
Gömüllü sistemler, yıllarca hatasız bir şekilde çalışacağı varsayılan donanımların içinde bulunur. Bu yüzden gömülü sistem içindeki yazılımlar, kişisel bilgisayar içinde olanlardan daha dikkatli bir şekilde geliştirilip test edilir. Pek çok gömülü sistemde, disket sürücü, anahtar ya da düğme gibi mekanik parçaların kullanımından sakınılır çünkü bu tip parçalar flash bellekler gibi statik parçalara kıyasla daha az güvenilirdir.
Bütün bunlara ek olarak, gömülü sistemler insanların kolaylıkla ulaşabileceği yerlere uzak olabilirler (bir petrol kuyusunun dibinde ya da uzayda bulunan bir uydu üzerinde). Dolayısıyla gömülü sistemler çok büyük veri kayıpları yaşandığı durumlarda bile kendilerini yeni baştan başlatabilmelidirler. Bu tip bir işlev watchdog timer adı verilen standart elektronik bir parça tarafından yerine getirilir.
Gömülü Sistemlerin Tasarımı
Elektronik cihazlar genellikle mikroişlemci ya da mikrokontrolör kullanırlar. Bazı büyük ya da eski sistemler ise genel maksatlı büyük bilgisayarlar ya da minibilgisayarlar kullanırlar.
Kullanıcı Arayüzleri
PARC, Apple Computer, Boeing ve HP’ de bulunan arayüz tasarımcıları, kullanıcı eylemlerininin tipinin sayısının azaltılması gerektiği ilkesini keşfettiler. Gömülü sistemlerde bu ilke daha düşük maliyetlere yönelik çalışmalarla birleştirilmektedir.
Gömülü sistemlerde yaygın olarak kullanılan standart bir arayüz iki tuştan oluşmaktadır; bunlardan biri menü sistemini kontrol etmek için diğeri ise istenilen seçimi gerçekleştirmek için kullanılmaktadır. Menüler kendilerini belgeleyebildikleri ve çok basit kullanıcı eylemleri ile seçilebildikleri için oldukça popülerdir.
Bir diğer yöntem ise çıktı tipini ufaltmak ve basitleştirmektir. Tasarım bazı durumlarda her bir arayüz çıkışı ya da sistem hatasını bilgilendirmek amacı ile ışık veren LED içerir. Ucuz bir seçenek olması açısından üzerine kullanıcının yerel dilini içeren hata çıkıntılarını gösteren baskılı matris etiketleri yapıştırılmış ışık barları kullanmaktır. Örneğin, pek çok küçük bilgisayar yazıcısı üzerinde herhangi bir dilde yazılar olan etiketlerle etiketlenmiş ışıklar kullanmaktadır. Bazı marketlerde bu tip ürünler müşterinin seçeceği dilde hazırlanmış etiketlerle satışa sunulmaktadır.
Kullanılan bir başka yöntem mode’ların kullanıcı ekranında açıkça görünür hale getirilmesidir. Eğer bir arayüzün modları varsa, her zaman bir yöntemle ya da arayüzün kendisi tarafından otomatik olarak tersine çevrilir. Örneğin, Boeing’in standart test arayüzü bir düğme ve birkaç ışıktan oluşur. Düğmeye basıldığı zaman ışıklar yanar ve bırakılması ile birlikte hata mesajı veren ışıklar yanar. Kullanılan etiketler yalın bir İngilizce ile hazırlanmıştır.
Tasarımcılar sıklıkla farklı renkleri kullanırlar. Kırmızı tehlike anlamına gelir ya da tüm sistemi etkileyecek bir hatanın varlığını belirtir. Sarı bir takım problemlerin olduğunu yeşil ise sistem durumunda herhangi bir aksaklık olmadığını belirtir. Seçilen renkler birçok insanın anlaması açısından trafik işaretlerindeki renkler olarak belirlenir.
Eğer yapılan tasarım bir ekran gerektiriyorsa tasarımcılar genelde düz metin kullanımını tercih ederler. Eğer ürün görsel eğlence öğeleri üzerinde kurulmuş bir tasarımdan ibaretse, görselliği zengin metinler, resimler ve menüler ürün için tercih edilmelidir.
Platform
Gömülü tasarımlarda kullanılabilecek ARM, MIPS, /, PowerPC, X86, , 8051, , , , , , gibi pek çok işlemci mimarisi bulumaktadır.
Standart (PC/104) küçük hacimli gömülü sistem tasarımları için sıkılıkla tercih edilmektedir. Bu tasarımlar genellikle DOS, Linux, NetBSD veya QNX ya da Inferno gibi gerçek zamanlı işletim sistemleri kullanmaktadır.
Büyük hacimli gömülü sistem tasarımlarında ise genellikle tek bir yonga üzerinde toplanmış sistemler tercih edilir ve bunun içinde uygulamaya yönelik tümleşik devre tasarımları kullanılır. Bu tasarımlar genelde CPU dahil tüm lojik tasarımlar FPGA kullanarak gerçeklenebilir.
Araçlar
Gömülü sistem tasarımcıları, bilgisayar programcıları gibi derleyici, çevirici ve hata ayıklayıcı gibi araçları gömülü sistem geliştirmekte kullanırlar. Bununla birlikte, pek çok programcıya yabancı gelebilecek bir takım araçlarda geliştirme sürecinde kullanılır.
Yazılım araçları birkaç kaynaktan elde edilebilir:
- Gömülü pazarda uzmanlaşmış yazılım şirketleri
- GNU yazılım geliştirme araçlarından çalışılacak ortama taşınarak (bkz. çapraz derleme)
- Bazen de işlemci mimarisi kullanılacak gömülü işlemci mimarisine yakın olan kişisel bilgisayarlarda kullanılan yazılımlardan faydalanılabilir.
Bilgisayar programcılarının tercih etmediği ama gömülü sistem tasarımcıları tarafından kullanılan birkaç yazılım aracı bulunmaktadır:
- Sıklıkla kullanılan bir araç “in-circuit emulator” (ICE) daha modern tasarımlarda ise gömülü bir hata ayıklayıcı. Bu hata ayıklama aracı gömülü kod geliştirmede kullanılan temel yapılardan biridir. Mikroişlemciye yapılan bağlantı ile sistemde geliştirilen kodların çabuk ve hızlı bir şekilde yüklenmesini ve ayıklanmasını sağlar.
- Gömülü bağlayıcıların (linker) kodun boyutunu ufaltmak ve çalışma zamanını azaltmak için pek çok optimizasyon özellikleri vardır. Bunlara ek olarak ve gibi optimizasyon teknikleri de sağlayabilmektedirler.
- Kullanılan bir diğer araç ise gömülü uygulamaya bir CRC yazılımı eklenmesi böylece gömülü sistem yazılım verisini çalıştırmadan önce kontrol edebilir.
Bunların dışında kullanılan bazı programlama dilleri kullanıcıya gömülü sistemler tasarlamak amacıyla çeşitli kolaylıklar sağlar. C dili için:
- İsimlendirilmiş adres alanları
- İsimlendirilmiş depolama sınıfları
- Temel I/O donanım adresleme
Hata Ayıklama
Hata ayıklama genellikle bir devre emülatör ya da mikrokontrolör tarafından çalışan mikrokodu kesebilecek bir çeşit hata ayıklayıcı tarafından gerçekleştirilebilir. Mikrokod kesme hata ayıklayıcıya üzerinde sadece CPU’nun çalıştığı donanım üzerinde çalışma imkânı verir. CPU tabanlı hata ayıklayıcılar bilgisayar donanımlarını CPU açısından test etmek ya da hata ayıklamak amacı ile kullanılabilir. Bunun yanında geliştiriciler, yüksek seviyeli dillerle kesme noktası ve tek adımlama kullanarak hata ayıklamalıdır çünkü bu özellikler oldukça yaygın olarak kullanılmaktadır. Bunlara ek olarak basit log kayıtlarının tutulması gerçek zamanlı eylemlerin hata ayıklamasında faydalı olur.
Gömülü sistemin karmaşıklığı arttıkça üst seviye araçlar ve işletim sistemleri tasarımların içine girmeye başlar. Cep telefonları, pda’ ler ve diğer tüketici bilgisayarları ileri düzey yazılım ve işletim sistemleri gerektirir. Bu tip sistemlerde, Linux, NetBSD, OSGi ya da gibi açık programlama ortamları, geniş bir pazara satış yapabilmek amacı ile kullanılmalıdır.
İşletim Sistemi
Gömülü sistemlerde işletim sistemi olmayabildiği gibi (Örn: PIC), Embedded (gömülü) Linux, Windows IoT, WinCE, Android, IOS gibi gelişmiş ya da özelleştirilmiş gömülü işletim sistemleri de kullanılabilir.
Başlangıç
Tüm gömülü sistemlerin bir başlangıç kodu vardır. Kesmeleri iptal eder, aygıtları devreye sokup çalıştırır, bilgisayarı test eder (RAM,CPU ve yazılım) ve ardından uygulama kodunu başlatır. Pek çok gömülü sistem kısa süreli güç kayıplarından, en son yapılan testler tekrarlanmadan kurtarılabilir.
Tasarımcılar hataları işaret etmesi açısından genellikle LED kullanımını tercih ederler. Genel bir tasarım olarak tekrar başlatma sırasında tüm cihazlara bağlı LED’ler yanmaya başlayacaktır. Daha sonra açılış testi sırasında yazılım, LED’lerin durumunu hata ya da normal haller için değiştirir.
Yerleşik Kendi kendine-Test
Kendini test eden gömülü sistemlerin temel şekilleri şöyle açıklanabilir:
- CPU, RAM ve yazılım belleğinin test edilmesi. Bu genellikle sisteme enerji verildiğinde bir kereliğine gerçekleştirilir. Güvenliğin kritik olduğu sistemlerde periyodik olarak ya da belli zaman aşımlarında gerçekleştirilir.
- Giriş, çıkış ve çevre aygıtlarının test edilmesi. İletişim, analog ve kontrol sistemleri bu tip testleri gerçekleştirebilir.
- Batarya ya da ona karşılık gelen enerji kaynağının test edilmesi.
- Bağlantı üniteleri arasında gerçekleştirilen iletişim testleri. Üniteler arasında yollanan ve alınan basit mesajlarla sağlanır.
- Kablo testleri. Bağlantı pinlerinin doğruluğunu test etmek için yapılır ve özellikle senkronize iletişim sistemlerinde ön plandadır.
- Donanım arama testi. Eklenen bir donanım ile ilgili bilgiler kullanıcıya döndürülerek sistem yükleme işlemine yönelik yol gösterme sağlanır.
- Tüketilebilinenlerin testi. Sistemde kullanılanların miktarı seviyesi ve pozisyonu hakkında bilgiler döndürür. Yakıt ya da çeşitli kimyasal maddelerin kontrolü buna örnek verilebilir.
- Operasyonel testler. Bu testler sistemin çalışması esnasında yürütülen fonksiyonlara yönelik bir testtir ve sistem çalışırken gerçekleştirilir.
- Güvenlik testi. Sistem güvenliği belli bir aralık değerine göre test edilir.
Güvenilirlik rejimleri
İnsanların talep etme nedenlerine göre güvenirliğin farklı tanımları vardır. Ama güvenilirlik tipleri farklı sistemler için temel olup birbirleri arasında büyük değişiklik göstermemektedir:
- Sistem oldukça güvensiz ya da onarım maksadı ile ulaşılması imkânsız (Uzay sistemleri, denizaltı kabloları vs.).
- Sistem güvenli bir şekilde kapatılamaz.
- Sistem güvensiz durumdayken çalışamaz.
Bu tanımlamalar güvenilirlik rejimi için kriter olarak seçilebilir.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Gomulu sistem bilgisayarin kendisini kontrol eden cihaz tarafindan icerildigi ozel amacli bir sistemdir Genel maksatli ornegin kisisel bilgisayar gibi bir bilgisayardan farkli olarak gomulu bir sistem kendisi icin onceden ozel olarak tanimlanmis gorevleri yerine getirir Sistem belirli bir amaca yonelik oldugu icin urunun boyutunu ve maliyetini azaltarak sistemi uygunlastirabilirler Gomulu sistemler genellikle buyuk miktarlarda uretildigi icin maliyetin dusurulmesinden elde edilecek milyonlarca urunun katlari olarak elde edilebilir Gomulu sistem ornegi bir yoneltici Isaretli parcalar mikroislemci 4 RAM 6 flas bellek 7 Ethernet Alici Verici Gomulu bir sistemin cekirdegini belirli bir sayida gorevi yerine getirmek icin programlanan mikroislemciler ya da mikrodenetleyiciler olusturur Kullanicilarin uzerinde istedigi yazilimlari calistirabildigi genel maksatli bilgisayarlardan farkli olarak gomulu sistemlerdeki yazilimlar yari kalicidirlar ve firmware ismiyle anilirlar Gomulu Sistem OrnekleriBanka ATM leri Eylemsiz rehber sistemleri ucus kontrol donanim yazilimi ve ucak ve fuzelerdeki diger tumlesik sistemlerden olusan havacilik elektronigi parcalari Yonlendirici router timeserver ve guvenlik duvari firewall gibi bilgisayar ag ekipmanlari Bilgisayar yazicilari Fotokopi makineleri Disket suruculer floppy disket suruculer ve sabit disk suruculer Termostat klima sprinkler ve guvenlik izleme sistemleri gibi ev otomasyonu urunleri Hesap makineleri Mikro dalga firinlar camasir makinesi televizyon alicisi ve DVD oynatici kaydedici gibi ev elektronigi urunleri Tibbi ekipmanlar Cok islevli kol saatleri Internet radyo alicilari TV set top box ve dijital uydu alicilar gibi cokluortam uygulamalari Cok islevli yazicilar PDA lar gibi kucuk avuc ici bilgisayarlar PDA ve Java destekli gelismis cep telefonlari Endustriyel otomasyon ve izleme icin PLC ler Video oyun konsollari ve avuc ici oyun konsollari Tasinabilir bilgisayarlarTarihceKayda deger ilk gomulu sistem MIT Instrumentation Laboratory da Charles Stark Draper tarafindan gelistirilen Apollo Guidance Computer olmustur Aya yapilan yolculuklarda iki tane kullanilirdi ve komuta modulu ve LEM in eylemsiz rehber sistemlerini calistiriyordu Projenin baslangicinda Apollo rehber bilgisayari Apollo projesinin en riskli parcasi olarak kabul ediliyordu O zamanki tek parca entegre devrelerin kullanilmasi boyut ve agirligi azaltiyor ama riski artiriyordu Ilk kitlesel gomulu sistem uretimi 1961 yilinda Minuteman fuzesi icin yapilan Autonetics D 17 rehber bilgisayari oldu Ayrik transistor mantik devresinden yapildi ve ana bellek icin bir harddiski vardi 1966 yilinda Minuteman II uretime girdiginde D 17 ilk defa yuksek hacimli tumlesik devrelerin kullanildigi yeni bir bilgisayara yerini birakti Bu yazilim dortlu NAND kapili tumlesik devrelerin birim fiyatini 1000 dan 3 a cekti ve ticari kullanimlarinin yolunu acti Minuteman bilgisayarinin onemli tasarim ozellikleri fuzenin hedefi daha hassas bulabilmesi icin rehber algoritmasinin yeniden programlanabilir olmasi ve bilgisayarin kablo ve konnektorden tasarruf saglayarak fuzeyi test edebilmesiydi Maliyetin dikkate alinmadigi 1960 lardaki bu ilk uygulamalardan itibaren gomulu sistemlerin fiyatlari dusmeye basladi Bunlarla birlikte islem gucu ve islevsellikte de yukselis oldu Ilk mikroislemci hesap makineleri ve diger ufak sistemlerde kullanilan Intel 4004 oldu Calisabilmesi icin harici bellek yongalari ve harici destek lojiklerine ihtiyac duyuyordu Intel 8080 gibi daha guclu mikroislemciler askeri projelerde gelistirildi ama diger kullanicilara da satildi 1970 lerin sonunda 8 bit mikroislemciler standart olmakla birlikte cozumleme ve giris cikis islemleri icin genellikle harici bellek yongalari ve lojiklere ihtiyac duyuyorlardi Ote taraftan fiyatlar hizla dusuyor ve uygulamalar kucuk gomulu sistemleri lojik tasarimlarin icine sokuyordu Gorunebilir uygulamalarin bir kismi enstrumantasyon ve pahali aygitlardi 1980 lerin ortalarinda harici olarak kullanilan sistem parcalari islemci ile beraber ayni yonganin icine girmeye basladi Bunun sonucu olarak boyutta ve gomulu sistemlerin maliyetinde cok buyuk dususler oldu Bu tip tumlesik devrelere mikroislemci yerine mikrokontrolor dendi ve gomulu sistemlerin yaygin bir sekilde kullanimi mumkun oldu Mikrokontrolor maliyeti bir muhendisin 1 saatlik maasinin altina indi ve bu gomulu sistemlerin sayisini ve gomulu sistemlerde kullanilmak uzere farkli sirketler tarafindan uretilen parcalarin sayisinin patlamasina neden oldu Ornegin pek cok yeni ozellige sahip IC ler geleneksel paralel programlama arayuzleri yerine mikrokontrolorlere daha az sayida arabaglanti saglayan seri programlama arayuzleri ile beraber gelmeye basladi I2C nin cikis zamani da bu doneme rastlamaktadir Mikrokontrolorler 1 in altina dustugunde voltmetre ve degisken kapasitor gibi pahali analog elemanlarin yerlerini kucuk bir mikrokontrolor ile kontrol edilen dijital elektronik elemanlara birakmasi mumkun oldu 80 lerin sonundan itibaren tum elektronik cihazlar icin gomulu sistemler bir istisna degil bir standart haline geldi ve bu akim halen devam etmektedir KarakteristiklerGomulu sistemler en genis manasiyla bilgisayar sistemidir Gomulu sistemlerin ornekleri tasinabilir muzik calicilardan uzay araclarindaki altsistemler icin kullanilan gercek zamanli kontrol sistemlerine kadar uzanir En ticari gomulu sistemler dusuk maliyette bir takim isleri gerceklestirmek icin tasarlaniyor Hepsi olmamakla birlikte buyuk cogunlugunun gercek zamanli sistem kisitlamalarini karsilamasi gerekir Bazi islevlerinin cok hizli olmasi gerekebilirken diger pek cok islevinin kesin zamanlama gereksinimi olmasi gerekmemektedir Bu tip sistemler gercek zaman kisitlarini sistem gereksinimlerine baglanmis ozel amacli yazilim ve donanim kombinasyonlari ile karsilarlar Gomulu sistemleri hiz ve maliyet ile karakterize etmek zor olmakla beraber maliyeti azaltan yuksek hacimli sistemler oncelikli tasarim hedefidir Genellikle gomulu sistemlerin dusuk verim gereksinimleri olur Bu sistem donanimini maliyeti dusurmek icin basitlestirme olanagi tanir Muhendisler gerekli islevleri saglayan yeteri kadar iyi olan donanimlari secerler Ornegin uydu televizyon icin dijital bir set top box in saniyede onlarca megabit veri islemesi gerekir ama bu islemlerin buyuk bolumu cok kanalli dijital videoyu ayristiran yonlendiren ve cozen ozel tumlesik devreler tarafindan gerceklestirilir Gomulu CPU bu islemi kurar ve set box in kullanici ara yuzu gibi gorsel ogelerini ekrana basar Gomulu islemcilerin hizlari artip fiyatlari ucuzlarken yuksek hizli veri islemede onculugu daha fazla ele almaktadirlar Dusuk hacimli gomulu sistemler icin kisisel bilgisayarlar yazilimlari sinirlayarak ya da isletim sistemini gercek zamanli isletim sistemiyle degistirerek kullanilabilir Bu durumda ozel amacli donanim bir ya da daha fazla yuksek verimli CPU ile degistirilebilir Bazi gomulu sistemler istenen gorevleri yerine getirmek icin yuksek performansli CPU ozel donanim ya da buyuk belleklere ihtiyac duyabilir Tasinabilir muzik calicilar ve cep telefonlari gibi buyuk hacimli gomulu sistemlerde maliyeti dusurme yonunde yapilan calismalar oncelik kazanir Bu sistemler genellikle birkac tumlesik devre butun fonksiyonlari kontrol eden tumlesik CPU ve tek bir bellek yongasi icerirler Bu tasarimlarda her bir eleman butun sistem maliyetini dusurecek sekilde secilir ve tasarimlari bu sart altinda yapilir Bir disk surucusu olmayan gomulu sistemler icin yapilan yazilima firmware adi verilir Firmware yazilimlari cihazin icinde bir ya da daha fazla ROM ya da flas bellek yongalarinda gomulu olarak bulunur Gomulu sistemlerdeki yazilimlar genellikle pek cok donanim kaynagindan mahrum bir sekilde calisirlar Genellikle bu tip sistemlerde disket surucu isletim sistemi klavye ya da ekran yoktur Eger bir kullanici arayuzu var ise kucuk bir klavye ya da LCD gerekebilir Gomullu sistemler yillarca hatasiz bir sekilde calisacagi varsayilan donanimlarin icinde bulunur Bu yuzden gomulu sistem icindeki yazilimlar kisisel bilgisayar icinde olanlardan daha dikkatli bir sekilde gelistirilip test edilir Pek cok gomulu sistemde disket surucu anahtar ya da dugme gibi mekanik parcalarin kullanimindan sakinilir cunku bu tip parcalar flash bellekler gibi statik parcalara kiyasla daha az guvenilirdir Butun bunlara ek olarak gomulu sistemler insanlarin kolaylikla ulasabilecegi yerlere uzak olabilirler bir petrol kuyusunun dibinde ya da uzayda bulunan bir uydu uzerinde Dolayisiyla gomulu sistemler cok buyuk veri kayiplari yasandigi durumlarda bile kendilerini yeni bastan baslatabilmelidirler Bu tip bir islev watchdog timer adi verilen standart elektronik bir parca tarafindan yerine getirilir Gomulu Sistemlerin TasarimiElektronik cihazlar genellikle mikroislemci ya da mikrokontrolor kullanirlar Bazi buyuk ya da eski sistemler ise genel maksatli buyuk bilgisayarlar ya da minibilgisayarlar kullanirlar Kullanici Arayuzleri PARC Apple Computer Boeing ve HP de bulunan arayuz tasarimcilari kullanici eylemlerininin tipinin sayisinin azaltilmasi gerektigi ilkesini kesfettiler Gomulu sistemlerde bu ilke daha dusuk maliyetlere yonelik calismalarla birlestirilmektedir Gomulu sistemlerde yaygin olarak kullanilan standart bir arayuz iki tustan olusmaktadir bunlardan biri menu sistemini kontrol etmek icin digeri ise istenilen secimi gerceklestirmek icin kullanilmaktadir Menuler kendilerini belgeleyebildikleri ve cok basit kullanici eylemleri ile secilebildikleri icin oldukca populerdir Bir diger yontem ise cikti tipini ufaltmak ve basitlestirmektir Tasarim bazi durumlarda her bir arayuz cikisi ya da sistem hatasini bilgilendirmek amaci ile isik veren LED icerir Ucuz bir secenek olmasi acisindan uzerine kullanicinin yerel dilini iceren hata cikintilarini gosteren baskili matris etiketleri yapistirilmis isik barlari kullanmaktir Ornegin pek cok kucuk bilgisayar yazicisi uzerinde herhangi bir dilde yazilar olan etiketlerle etiketlenmis isiklar kullanmaktadir Bazi marketlerde bu tip urunler musterinin sececegi dilde hazirlanmis etiketlerle satisa sunulmaktadir Kullanilan bir baska yontem mode larin kullanici ekraninda acikca gorunur hale getirilmesidir Eger bir arayuzun modlari varsa her zaman bir yontemle ya da arayuzun kendisi tarafindan otomatik olarak tersine cevrilir Ornegin Boeing in standart test arayuzu bir dugme ve birkac isiktan olusur Dugmeye basildigi zaman isiklar yanar ve birakilmasi ile birlikte hata mesaji veren isiklar yanar Kullanilan etiketler yalin bir Ingilizce ile hazirlanmistir Tasarimcilar siklikla farkli renkleri kullanirlar Kirmizi tehlike anlamina gelir ya da tum sistemi etkileyecek bir hatanin varligini belirtir Sari bir takim problemlerin oldugunu yesil ise sistem durumunda herhangi bir aksaklik olmadigini belirtir Secilen renkler bircok insanin anlamasi acisindan trafik isaretlerindeki renkler olarak belirlenir Eger yapilan tasarim bir ekran gerektiriyorsa tasarimcilar genelde duz metin kullanimini tercih ederler Eger urun gorsel eglence ogeleri uzerinde kurulmus bir tasarimdan ibaretse gorselligi zengin metinler resimler ve menuler urun icin tercih edilmelidir Platform Gomulu tasarimlarda kullanilabilecek ARM MIPS PowerPC X86 8051 gibi pek cok islemci mimarisi bulumaktadir Standart PC 104 kucuk hacimli gomulu sistem tasarimlari icin sikilikla tercih edilmektedir Bu tasarimlar genellikle DOS Linux NetBSD veya QNX ya da Inferno gibi gercek zamanli isletim sistemleri kullanmaktadir Buyuk hacimli gomulu sistem tasarimlarinda ise genellikle tek bir yonga uzerinde toplanmis sistemler tercih edilir ve bunun icinde uygulamaya yonelik tumlesik devre tasarimlari kullanilir Bu tasarimlar genelde CPU dahil tum lojik tasarimlar FPGA kullanarak gerceklenebilir Araclar Gomulu sistem tasarimcilari bilgisayar programcilari gibi derleyici cevirici ve hata ayiklayici gibi araclari gomulu sistem gelistirmekte kullanirlar Bununla birlikte pek cok programciya yabanci gelebilecek bir takim araclarda gelistirme surecinde kullanilir Yazilim araclari birkac kaynaktan elde edilebilir Gomulu pazarda uzmanlasmis yazilim sirketleri GNU yazilim gelistirme araclarindan calisilacak ortama tasinarak bkz capraz derleme Bazen de islemci mimarisi kullanilacak gomulu islemci mimarisine yakin olan kisisel bilgisayarlarda kullanilan yazilimlardan faydalanilabilir Bilgisayar programcilarinin tercih etmedigi ama gomulu sistem tasarimcilari tarafindan kullanilan birkac yazilim araci bulunmaktadir Siklikla kullanilan bir arac in circuit emulator ICE daha modern tasarimlarda ise gomulu bir hata ayiklayici Bu hata ayiklama araci gomulu kod gelistirmede kullanilan temel yapilardan biridir Mikroislemciye yapilan baglanti ile sistemde gelistirilen kodlarin cabuk ve hizli bir sekilde yuklenmesini ve ayiklanmasini saglar Gomulu baglayicilarin linker kodun boyutunu ufaltmak ve calisma zamanini azaltmak icin pek cok optimizasyon ozellikleri vardir Bunlara ek olarak ve gibi optimizasyon teknikleri de saglayabilmektedirler Kullanilan bir diger arac ise gomulu uygulamaya bir CRC yazilimi eklenmesi boylece gomulu sistem yazilim verisini calistirmadan once kontrol edebilir Bunlarin disinda kullanilan bazi programlama dilleri kullaniciya gomulu sistemler tasarlamak amaciyla cesitli kolayliklar saglar C dili icin Isimlendirilmis adres alanlari Isimlendirilmis depolama siniflari Temel I O donanim adreslemeHata Ayiklama Hata ayiklama genellikle bir devre emulator ya da mikrokontrolor tarafindan calisan mikrokodu kesebilecek bir cesit hata ayiklayici tarafindan gerceklestirilebilir Mikrokod kesme hata ayiklayiciya uzerinde sadece CPU nun calistigi donanim uzerinde calisma imkani verir CPU tabanli hata ayiklayicilar bilgisayar donanimlarini CPU acisindan test etmek ya da hata ayiklamak amaci ile kullanilabilir Bunun yaninda gelistiriciler yuksek seviyeli dillerle kesme noktasi ve tek adimlama kullanarak hata ayiklamalidir cunku bu ozellikler oldukca yaygin olarak kullanilmaktadir Bunlara ek olarak basit log kayitlarinin tutulmasi gercek zamanli eylemlerin hata ayiklamasinda faydali olur Gomulu sistemin karmasikligi arttikca ust seviye araclar ve isletim sistemleri tasarimlarin icine girmeye baslar Cep telefonlari pda ler ve diger tuketici bilgisayarlari ileri duzey yazilim ve isletim sistemleri gerektirir Bu tip sistemlerde Linux NetBSD OSGi ya da gibi acik programlama ortamlari genis bir pazara satis yapabilmek amaci ile kullanilmalidir Isletim Sistemi Gomulu sistemlerde isletim sistemi olmayabildigi gibi Orn PIC Embedded gomulu Linux Windows IoT WinCE Android IOS gibi gelismis ya da ozellestirilmis gomulu isletim sistemleri de kullanilabilir Baslangic Tum gomulu sistemlerin bir baslangic kodu vardir Kesmeleri iptal eder aygitlari devreye sokup calistirir bilgisayari test eder RAM CPU ve yazilim ve ardindan uygulama kodunu baslatir Pek cok gomulu sistem kisa sureli guc kayiplarindan en son yapilan testler tekrarlanmadan kurtarilabilir Tasarimcilar hatalari isaret etmesi acisindan genellikle LED kullanimini tercih ederler Genel bir tasarim olarak tekrar baslatma sirasinda tum cihazlara bagli LED ler yanmaya baslayacaktir Daha sonra acilis testi sirasinda yazilim LED lerin durumunu hata ya da normal haller icin degistirir Yerlesik Kendi kendine Test Kendini test eden gomulu sistemlerin temel sekilleri soyle aciklanabilir CPU RAM ve yazilim belleginin test edilmesi Bu genellikle sisteme enerji verildiginde bir kereligine gerceklestirilir Guvenligin kritik oldugu sistemlerde periyodik olarak ya da belli zaman asimlarinda gerceklestirilir Giris cikis ve cevre aygitlarinin test edilmesi Iletisim analog ve kontrol sistemleri bu tip testleri gerceklestirebilir Batarya ya da ona karsilik gelen enerji kaynaginin test edilmesi Baglanti uniteleri arasinda gerceklestirilen iletisim testleri Uniteler arasinda yollanan ve alinan basit mesajlarla saglanir Kablo testleri Baglanti pinlerinin dogrulugunu test etmek icin yapilir ve ozellikle senkronize iletisim sistemlerinde on plandadir Donanim arama testi Eklenen bir donanim ile ilgili bilgiler kullaniciya dondurulerek sistem yukleme islemine yonelik yol gosterme saglanir Tuketilebilinenlerin testi Sistemde kullanilanlarin miktari seviyesi ve pozisyonu hakkinda bilgiler dondurur Yakit ya da cesitli kimyasal maddelerin kontrolu buna ornek verilebilir Operasyonel testler Bu testler sistemin calismasi esnasinda yurutulen fonksiyonlara yonelik bir testtir ve sistem calisirken gerceklestirilir Guvenlik testi Sistem guvenligi belli bir aralik degerine gore test edilir Guvenilirlik rejimleri Insanlarin talep etme nedenlerine gore guvenirligin farkli tanimlari vardir Ama guvenilirlik tipleri farkli sistemler icin temel olup birbirleri arasinda buyuk degisiklik gostermemektedir Sistem oldukca guvensiz ya da onarim maksadi ile ulasilmasi imkansiz Uzay sistemleri denizalti kablolari vs Sistem guvenli bir sekilde kapatilamaz Sistem guvensiz durumdayken calisamaz Bu tanimlamalar guvenilirlik rejimi icin kriter olarak secilebilir