İPUCU

Donanım Bilgisayar Donanımı İle İlgili Yardımlaşma Bölümümüz ...

Seçenekler

Gömülü Sistem Programlama(Embedded System Programmimg)

0xLegendary - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
07/2013
Mesajlar:
1.403
Konular:
229
Teşekkür (Etti):
156
Teşekkür (Aldı):
503
Ticaret:
(0) %
10-08-2013 00:20
#1
Gömülü Sistem Programlama(Embedded System Programmimg)
GÖMÜLÜ SİSTEM PROGRAMLAMA (Embedded System Programming)

Gömülü sistem programlama masaüstü bilgisayarlar üzerinde geliştirilen uygulamalardan faklıdırlar. Bu iki sistem arasındaki ana farkları aşağıdaki gibi sıralayabiliriz.

Gömülü cihazlar sınırlı kaynağa sahiptirler.(sınırlı ROM, Sınırlı RAM, düşük işlemci gücü ,sınırlı yığın alanı gibi)
Gömülü sistemler ile bilgisayarda kullanılan bileşenler farklıdır.
Gömülü sistemlerde tipik olarak daha küçük ve daha az güç tüketen bileşenler kullanılır.
Gömülü sistemler daha fazla donanıma bağlıdırlar.
Gömülü Programlamada göze çarpan en önemli iki özellik kodun hızı ve büyüklüğüdür. Kodun hızı işlemci gücü, zamanlama kısıtlamaları ile yönetilirken, kodun boyutu mevcut program hafızası ve kullanılan programlama diline bağlıdır. Gömülü sistem programlamadaki hedef Minimum alan ve minimum zamanda maksimum özellikli program elde etmektir.

Gömülü Sistemde Kullanılan Diller

Gömülü sistemle farklı tür diller kullanılarak programlanırlar.
Makine kodu (Machine Code)
Düşük seviyeli diller Low level language (assembly)
Yüksek seviyeli diller (High Level Language) (c, c++,java, ada)
Uygulama Düzeyi Diller(Visual Basic, Access)

a) Assembly

Assembly dili, assembly dilene özgü ifadeler ile ikilerden oluşan (binary) makine kodu arasında eşleştirmeyi yapar. Assembly dili gömülü cihazları programlamak için bariz bir seçim gibi görünür. Fakat bu dil kullanımı hız ve boyut açısından verimli kodlar geliştirme konusunda sınırlıdır. Ayrıca assembly kodları yüksek yazılım geliştirme maliyetine yol açar ve taşınabilirliği yoktur. Küçük kodların tasarımlarda genelde herhangi bir sorunla karşılaşılmaz.. Fakat assembly dili ile yazılmış büyük programlarda programı yönetmek giderek zor hale gelir. Ayrıca iyi bir assembly derleyicisi bulmak da günümüzde zor hale gelmiştir. Dolayısıyla günümüzde gömülü işlemci sistemi programlaması için yüksek seviyeli diller tercih edimektedir.

b) Gömülü C

Gömülü sistemlerde C ‘nin kullanılmasının avantajlarını aşağıdaki gibi sıralayabiliriz.

Öğrenilmesi oldukça basittir, (programlama, anlama, hata ayıklama)
C derleyicileri günümüzde kullanılan neredeyse bütün gömülü cihazlar için mevcuttur. Assembly’nin aksine C’nin herhangi bir özel işlemci/microkontrolcü bağımlığı yoktur. Bu ise çoğu sistemler üzerinde koşabilecek programlar geliştirilmesinde C dilini kullanıcı için uygun hale getirir.
C assembly dilinin işlevselliği ile yüksek seviye dillerin özelliklerini birleştirdiği için C, 'orta düzey bilgisayar dili' veya 'yüksek seviye assembly dili' olarak kabul edilir.
Oldukça verimlidir.
I/O erişimini destekler ve büyük gömülü projelerin yönetim kolaylığı sağlar.
Diğer dillerde bu avantajların çoğunu sunmaktadırlar. Fakat C dilini bu programlardan (Pascal, Fortran) ayıran özelliği C'nin orta seyiye bir dil olması ve yüksek seviye dillerin sağlamış oldukları yararlardan ödün vermeden doğrudan donanım kontrolü sağlamasıdır.

Diğer yüksek seviye dillerle karşılaştırıldığında C daha fazla esneklik sunar. Çünkü C nispeten küçük yapılı bir dildir ve düşük seviyeli bit temelinde veri işlemesini destekler.

Assembly diliyle karşılaştırdığımız zaman, C de kod yazımı daha güvenilirfarklı platformlar arasında daha taşınır bir özelliğe sahiptir.”(bazı küçük değişikliklerle) Ayrıca C de geliştirilen programların anlaşılması, programın sürdürülmesi ve program üzerindeki hata ayıklama daha kolaydır. Program C de daha hızlı geliştirilebilir. C de iyi bir kod yazılıp, yüksek kaliteli derleyiciler yardımıyla etkin bir assembly koduna dönüştürülebilir. Ayrıca çoğu gömülü C programları içerisinde assembly yazılmasını destekler. Eğer kritik görülen bir nokta varsa bu kısmın C programına assembly olarak dahil edilir.


c) C++

Nesne yönelimli bir dil olan C++ gömülü aygıtlar gibi kısıtlı kaynağa sahip ortamlarda etkin programların geliştirilmesi için uygun değildir. C++’ın, Sanal fonksiyonları ve istisna işlemleri (Virtual functions & exception handling) gömülü sistemler içerisindeki hız ve alan açısından verimli olmayan bazı specific özellikleridir. Bazen gömülü sistem yazılımlarında C++ yalnızca bazı özellikleri kullanılır.

d) ADA

Nesne yönemli bir başka dil olan Ada, C++ dan faklıdır. Başlangıçta ABD DOD tarafından tasarlanan ada, Ada83 ve Ada 95 olmak üzere iki defa uluslararası standart (Ada83 ve Ada95) olarak kabul edilmesine rağmen popular olamamıştır. Fakat ada dili gömülü yazılım geliştirme işlemini basitleren bir çok özelliği vardır.

e) JAVA

Gömülü sistem programlama için kullanılan diğer bir dilde java dilidir. Sistemler arası taşınabilirlik sunması ve tarama(browsing) uygulamalarında kullanışlı olması nedeniyle özellikle üst seviye cep telefonlarında tercih edilen bir dildir. Fakat programın çok kaynak tüketen Java Virtual Machine (JVM) ihtiyaç duyması, bu dilin küçük gömülü cihazlar için kullanılmasına engel olmaktadır.

d) Diğer Diller

Ayrıca Dinamik C ve B # de gömülü uygulamalarda kullanılan bazı özel dillerdir.
Konu 0xLegendary tarafından (10-08-2013 10:10 Saat 10:10 ) değiştirilmiştir.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı