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

Post on 20-Jun-2015

5.533 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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 MIT

Instrumentation Laboratory ‘da Charles

Stark Draper tarafından geliştirilen

Apollo 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

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ı modifiyeetmek 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 olansistemlere (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 sahipolan 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

top related