• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Gömülü sistemlerde yazılım geliştirme
 

Gömülü sistemlerde yazılım geliştirme

on

  • 4,566 views

 

Statistics

Views

Total Views
4,566
Views on SlideShare
4,562
Embed Views
4

Actions

Likes
1
Downloads
80
Comments
0

2 Embeds 4

http://www.techgig.com 3
https://si0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Gömülü sistemlerde yazılım geliştirme Gömülü sistemlerde yazılım geliştirme Presentation Transcript

    • Gömülü Sistem Nedir? Gömülü bir sistem kişisel PC’ lere göre HW ve SW bakımından çok daha sınırlı yapıda olan sistemlerdir. Kendilerine adanmış bir fonksiyonu yerine getirirler. 1
    • Kayda değer ilk gömülü sistem MITInstrumentation Laboratory ‘da CharlesStark Draper tarafından geliştirilenApollo Guidance Computer olmuştur. 2
    • İlk Ticari Üretim İlk kitlesel gömülü sistem üretimi 1961 yılında yapılmıştır. Bundan sonra birimlerin fiyatları 1000 $ Seviyesinden 3 $’ a düşmüştür. Bu sayede teknolojik ürünler çok hızlı bir şekilde uculamıştır. 3
    • Gömülü Sistemlerde Güvenlikİddialı bir söylem olmakla beraber; Gömülü sistemlerin %100 güvenli, hata yapmayan birimler oldukları ifade edilebilir. 4
    • Gömülü Sistem Üretimi Dünyada üretilen mikroişlemcilerin % 98’inin gömülü sistemlerde kullanıldığı ifade edilmektedir. Ancak % 2’lik bir kısım Bilgisayar üretiminde kullanılmaktadır. 5
    • İşlemci Üretim Miktarı Gömülü sistem gereksiniminde her yıl 200 milyon adet ekstra artışın olduğu İleri sürülmektedir. Dünyada 1 yılda ortalama 5-6 Milyar adet işlemci üretimi yapıldığı ifade edilmektedir. Her işlemci için ortalama 10 $’lık bir fiyat öngörülürse, bunun 50-60 Milyar $’lık bir büyüklüğü ifade ettiği görülmektedir. 6
    • Gömülü Sistem Örnekleri Atm (Automatic Tax Machines) Cep Telefonları Network Ekipmanları Motor Denetleyiciler Abs Fren Sistemleri Ev Otomasyon Ürünleri Hava Savunma Sistemleri Tıbbi Ekipmanlar Ölçüm Sistemleri gibi. 7
    • 8
    •  Gömülü sistemin çekirdeğini bir mikroişlemci yada bir mikrokontrolör oluşturur. Genel amaçlı PC’ lerde kullanıcılar uygulama yazılımı çalıştırabilirler. Buna karşın gömülü sistem yazılımları genelde sabittirler. Rom ve Flash memory’ de saklanırlar. Firmware adıyla anılırlar. 9
    • Platformlar ARM ( Nxp, Texas Instrument, .. ) MIPS PowerPC ( Apple, IBM, Motorola ) X86 ( intel ) PIC ( Microchip) 8051 (intel ) Atmel AVR FPGA ( Xilinx , Altera ..) 10
    • Tercih Edilenler? Başlangıç uygulamalarında ve eğitim öğretimde, ucuzluğu ve uygulama çokluğu nedeniyle PIC çok tercih edilmektedir. Fakat; tutarsızlığı ve kalitesizliği nedeniyle daha çok amatör projelerde kullanılırlar. 11
    • Tercih Edilenler? (devam) ARM mikroişlemciler, gömülü sistem piyasasının %90’ına hakimdir. Özellikle cep telefonu, tablet pc, netbook, mp3 player gibi ürünlerde tercih edilmektedir. RISC mimarili bir mikroişlemcidir. Cep telefonlarında, daha çok OMAP Arm işlemci kullanılır. 12
    • 13
    • Tercih Edilenler? (devam) Bu işlemciler diğer ARM işlemcilerden farklı olarak, birde DSP(Digital Signal Processing) modül içerirler. Bu sayede, Video, Ses işlemleri ARM işlemciye daha etkin kazandırılmış olur. Bugün Microsoft ARM işlemciler içinde bir işletim sistemi üreteceğini duyurdu. 14
    • TümDevre Büyük hacimli gömülü sistem tasarımında, tümleşik devre tasarımına gidilmektedir. Mikroişlemci ve Mikrokontrolör’den farklı olarak yalnızca bir özel amaç için üretilmiş donanım ve yazılım içeren bütün bir entegre’dir. 15
    • Niçin Tümdevre? Daha az kompenent  Daha az maliyet  Daha az alan  Daha az güç tüketimi 16
    • TümDevre (devam) ASIC (application-specific integrated circuit) Örnek olarak bir devre için adc ve adc ile birlikte bir program kullanılıyor olsun eğer satış adedi çok yüksek ise tasarlanacak bir entegre ile daha uygun fiyatlara mal edilebilir, işte bu tasarlanan özel entegre devrelere ASIC denir. 17
    • TümDevre (devam) FPGA (Field Programmable Gate Array ) Bu sistemlerde CPU dahil, tüm logic birimler FPGA üzerinde gerçeklenir. 18
    • 19
    • FPGA (devam) FPGA gerçeklemek için, HDL (Hardware Definition Language Kullanılır. VHDL ( Very-High Hardware Definition Language) Verilog ( Verilog HDL ) VHDL batı toplumlarında, Verilog ise daha çok uzakdoğu’da tercih edilmekteler. 20
    • FPGA’nın avantajları Donanım sınırlılıklarını ortadan kaldırır. Hem görsel hemde kodsal tasarıma sağlar. ASIC (Uygulamaya Özel Tümleşik Devre) tasarlamak ve tasarım sonrası modifiye etmek güçtür. Bu yüzden ASIC tasarlamada ve ASIC oluşturmadan direkt olarak kullanılırlar. Donanım kaynaklarının yettiği ölçüde, gerçek anlamda paralel processing’e olanak tanır. 21
    • FPGA’nın dezavantajları Bilgisayar ortamında yazılan programın derlenmesi çok fazla vakit alır. Bu yüzden güçlü bir sistem gereklidir. Aynı işlevi gören bir ASIC’e göre daha fazla alan kaplar. 22
    • 23
    • Standartlar Gömülü sistem tasarımında, standartlar bilgisi çok önemlidir. Standartlar bilinmeden çıkılan yol çıkmaz yoldur. 24
    • Standartlar (devam) • TCP/IP (Wired / Wireless) • TAPI, RAS • Bluetooth • USB, Firewire • Serial, Parallel • ATAPI, SATA • CompactFlash, PCMCIA, SDIO • vs.. 25
    • Cross-Compiler (Çapraz Derleyici )Kavramı Bilgisayar yazılımlarında, derleme ve koşturma aynı makinede gerçekleşebilir. Gömülü sistemlerin kısıtlı donanım kaynaklarından dolayı, derleme kısmı, daha güçlü donanım ve yazılım kaynağı barındıran kişisel bilgisayarlarda yapılır. 26
    •  Host ( Ana makine / PC ) Target ( Hedef makine / Board ) Ana makinede hedefin anlayacağı makine kodu oluşturulur, ve hedef makineye yazılır 27
    • Yazılım dillerinin gelişimi.. 28
    • Assembler, Compiler ve Interpreter Assemler : Asm kodunu makine diline çevirir. Compiler ( Derleyici ) : Yüksek seviyeli bir dilden düşük seviyeli bir dile çeviri yapar ( Assembly veya Makine Kodu) Interpreter ( Yorumlayıcı ) : Makine koduna veya java byte koda çevrilen programı satır satır işlemcide işletir. 29
    • Makine Kodu Donanımın anladığı gerçek dildir. 1 ve 0 lardan oluşmaktadır. Tüm üst programlama dilleri, nihayetinde mevcut kodu, makine koduna çevirmek zorundadır. 30
    • Assembly dili 0 ve 1 ler yerine belirli bir söz dizimine bağlı olarak, kullanıcıya kolaylık sunması amacı ile geliştirilen bir dildir. Donanıma bağımlı bir dildir. Yani bir işlemciye ait assembly dili ile başka bir işlemciye ait assembly dili mimari farklılığından dolayı farklı olmaktadır. 31
    • C dili İşte bu farklılıkları soyutlamak için, C dili geliştirilmiştir. Standart bir C kütüphanesi mevcuttur. (C99) Donanıma bağımlı bir dil değildir. Yeni bir donanımı desteklemesi isteniyorsa, üretici tarafından o işlemciye ait C kütüphanesi oluşturulur. Söz dizimi assembly’e göre kat kat iyidir. 32
    • C++ C dilinin modifiye edilmiş halidir. Aslında C dili çok yetenekli ve yeterli bir dildir fakat nesneye dayalı bir dil değildir. Tercih sebebi ; Büyük uygulamalarda modüler kod yapısından dolayı tasarım, geliştirme, test ve bakım aşamalarında kolaylık sağlamasıdır. 33
    • C++ (devam) Diğer bir tercih sebebi ise; Security, Exception Handling, namespace, type-security gibi gelişmiş yapıları barındırmasıdır. 34
    • 35
    • C source code 36
    • C/C++ header file 37
    • 38
    • JAVA C++ gibi nesneye dayalı bir dildir. JVM (Java Virtual Machine) üzerinde çalışmaktadır. Assembly, C ve C++ dillerindeki gibi, Host makinede exetuable oluşturmak gerekmez. Çünkü JVM target içinde bulunur ve Java Byte kodları otomatik olarak makine koduna yorumlanır. 39
    • 40
    • Script dilleri Perl, JavaScript, Html Yüksek seviye dillerin haricinde bu diller direkt olarak makine koduna çevrilirler. Daha doğrusu compile edilmeden işlemcide yorumlanırlar. 41
    • IEC-61131-3 standart dilleri Ladder diagram (LD) graphical Function block diagram (FBD) graphical Structured text (ST) textual Instruction list (IL) textual Sequential function chart (SFC) 42
    • LADDER 43
    • FBD 44
    • Interpreter 45
    • Gömülü İşletim Sistemleri Bir mikroişlemci yada mikrokontrolör içerisinde bir firmware bulundurur demiştik. Daha büyük uygulamalarda ise mevcut Runtime yetersiz gelebilmektedir. Bu yüzden donanımın daha etkin ve kontrol altında kullanılması için Gömülü İşletim Sistemleri Kullanılmaktadır. 46
    • Gömülü İşletim Sistemleri (devam) İki özel amacı vardır.A. Programlanan yazılımın hardware’den soyutlanmasıB. Uygulama yazılımlarına konak oluşturması. 47
    • Gömülü İşletim Sistemleri (devam) İşletim sistemi bulunmayan gömülü sistemlerde uygulama yazılımı ve Middleware koşturulmaz. Eğer kullanıcı yazılımı koşturmak istiyorsak bir konak işletim sistemi kullanılmalıdır. 48
    • Application Programs Uygulama yazılımlarına örnek olarak Cep telefonlarında kullandığımız ve yüklediğimiz yazılımlar söylenebilir. Opera mini, Skype, Sözlük gibi.. 49
    • Middleware Bu yazılımlar aslında bir uygulama yazılım denebilir. Farkı ise daha çok üreticilerin gömülü sisteme eklediği ara yazılımlar olmasıdır. Örneğin JVM bir Middleware’ dir ve bunu kullanıcı platforma kurmaz. Üretici bunu zaten kurmuştur. 50
    • 51
    • 52
    • Gerçek zamanlı sistemler Gerçek zamanlı sistemler; kendi fonksiyonlarını, tanımlanan zaman diliminde yerine getirebilme ve beklenmedik olaylara cevap verebilme yeteneğine sahip ortamlardır. 53
    • RTOS ( Real-Time Operating System ) Gerçek zamanlı işletim sistemi ise, görevler arasında geçiş süresini ve kesilme sürecini en-kötü şartlarda görevlere atanan öncelikler ve kesme karakteristikleri doğrultusunda garanti eden işletim sistemi türüdür. 54
    • RTOS ( Real-Time Operating System ) (devam) Çok keskin zaman kısıtlarına sahip olan sistemlere (hard real time) Katı Gerçek Zamanlı İşletim Sistemi bir olaya, hangi şartlar altında olursa olsun belirlenen yanıt verme süresini garanti etmektedir. Bu süre milisaniye yerine mikrosaniye (µs) seviyesindedir. Daha esnek zaman kısıtlarına sahip olan sistemlere (soft real time)‫‏‬sistemler denir. 55
    • RTOS’ özellikleri Süreç yönetimi (çok görevlilik) (Real-time scheduling and process management)‫‏‬ Süreçler arası iletişim (IPC – interprocess communication)  semafor, kilit, mesaj kutuları Kaynak yönetimi Uygulama gereksinimlerine göre büyüyüp küçülebilme İyi başarım, daha az bellek kullanımı değişik donanım platformlarına taşınabilme 56
    • En çok kullanılan RTOSes Ecos (RedHat’s GNU) FreeRTOS ( GNU & Ticari Lisans) VxWorks ( Askeri projelerde tercih ediliyor) LynxOS QNX RTLinux Windows CE OSE Embedded XP 57