fpganedir.com'da ara

fpganedir mail

* Giriş

* Gömülü Sistem
   Programlama

 * C ile Gömülü C Arasındaki
    Farklar

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ü 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.

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.

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.

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.