elektrik port üyelik servisleri elektrik port üyelik servisleri

Mikrodenetleyiciler Nasıl Çalışır? |
4. Bölüm

Yazımızın bu bölümüne kadar mikrodenetleyicileri, çevre birimlerini ve temel kavramları anlatmaya çalıştık. Bu bölümde ise mikrodenetleyicilerin nasıl programlandığını, hangi dillerin ve araçların kullanıldığını, programlama dillerinin temel farklarını inceleyeceğiz.



A- A+
02.03.2015 tarihli yazı 4522 kez okunmuştur.
Yazımızın birinci bölümünde mikroişlemci ve mikrodenetleyici kavramlarını ve aralarındaki farkı incelemiştik

İkinci bölümde  mikrodenetleyicilerden bahsederken sıklıkla kullandığımız kavramları açıkladık.

Yazımızın üçüncü bölümünde ise mikrodenetleyici birimlerini özelliklerini ve çalışmalarını inceleyeceğiz.

Bu bölümde ise mikrodenetleyicilerin nasıl programlandığını, hangi dillerin ve araçların kullanıldığını, programlama dillerinin temel farklarını inceleyeceğiz.

Mikrodenetleyici programı bir derleyici (compiler) yardımı ile derlenip makine kodlarına dönüştürülerek MCU üreticisinin tasarladığı ya da başka firmalar tarafından üretilen programlayıcı devreler üzerinden mikrodenetleyicinin program hafızasına yazılır. Program hafızasına yazılan kodlar makine dili seviyesinde yani 1 ve 0’lardan oluşur.

 

Komut Seti (Instruction Set)

Her mikrodenetleyici ailesi üretici firmanın belirlediği bir komut seti (Instruction Set) ile birlikte duyurulur. Bu komut seti mikrodenetleyicinin özelliklerine ve çevre birimine göre değişiklikler gösterir. Üretici firmanın duyurduğu bu komut seti Assembly dilindedir. Assembly dili makine diline yakın düşük seviyeli bir dildir. Makine dili komutlarına (0 ve 1 ‘lerden oluşur) İngilizce dilinde getirilen kısaltmalardan oluşmuştur. Bu kodlar yine üreticinin hazırladığı Assembler denilen derleyiciler ile derlenerek makine diline dönüştürülür.

 

Assembly Dili - C Dili

Assembly dilinin makine diline yakın düşük seviyeli bir dil olduğundan bahsetmiştik. Burada düşük seviyeli dil tanımı dilin konuşma dilinden uzaklığını ifade eder. Kısacası bir dilin seviyesi düştükçe o dilde programlama yapmak zorlaşır fakat esneklik artar. Yüksek seviyeli dillerde ise program yazmak kolaylaşırken yazılabilecek programlara bazı kısıtlamalar gelir.
 
 
►İlginizi Çekebilir: MicroC ile Programlama Dersleri


Daha anlaşılır bir örnek olarak küçük tuğlaları ve büyük beton blokları verebiliriz. Küçük tuğlalar kullanarak bir bina yapmak istediğimizde muhtemelen daha uzun sürecek daha fazla emek harcarız. Fakat elimizdeki malzemenin küçüklüğü bize esneklik kazandırır ve istediğimiz şekilde, istediğimiz boyutlarda girinti ve çıkıntılarla süslediğimiz bir bina yapabiliriz.

Fakat alışılagelmiş büyük bir bina yapacaksak büyük standart beton blokları kullanmak hem daha akıllıca bir seçim olacaktır. Fakat bu durumda yapacağımız binada standart kalıpların dışına çıkmamız mümkün olmaz.
 

 
►İlginizi Çekebilir: Arduino İle AVR Programlama


Düşük seviyeli ve yüksek seviyeli dillerde de bunun gibi bir seçim yapmamız gerekir. Esneklik mi kolaylık mı? Fakat mikrodenetleyici programlamada doğrudan donanıma eriştiğimiz için yüksek seviyeli bir dil olan C dili de bize yeterince esneklik kazandırır. Assembly diline sadece bazı özel durumlarda ihtiyaç duyulur. Örneğin Assembly dilinde her komutun kaç cycle(bir saat darbesi süresi) süreceği bilindiği için hassas zaman uygulamalarında sıklıkla kullanılır. Bu durumlarda da çoğu zaman derleyicilerin C dili içerisinde bazı kısımların Assembly ile yazılabilmesine izin vermesiyle çözülür. Yani mikrodenetleyici içeren gömülü sistem projelerimizde hem tuğlayı hem de büyük beton blokları aynı anda kullanabiliriz.  Fakat bilgisayar programlamada Assembly dili ile uygulama yapmak neredeyse imkansızdır.

Günümüzde gömülü sistem projelerinin tamamına yakını C dili ile programlanmaktadır. Embedded C denilen bu programlama dilinin C dilinden söz dizimi olarak bir farkı yoktur fakat kaynaklara erişim yönünden Embedded C doğrudan donanıma erişmesi ile farklıdır.

 

Derleyiciler

Son yıllarda en çok kullanılan derleyicileri MPLAB, PIC C, Micro C, IAR, KEIL, CCS, Atmel Studio olarak sıralayabiliriz. MPLAB Microchip firmasının, Atmel Studio Atmel’İn, KEIL ARM’ın, CCS ise Texas Instruments firmasının yayınladığı derleyicilerdir. Burada bahsettiğimiz tüm derleyicilerin farklı mikrodenetleyici aileleri için çeşitli sürümleri bulunmaktadır. 32 bit (özellikle ARM) temelli mikrodenetleyicilerin popüler olmasıyla birlikte IAR ve KEIL derleyicileri de ön plana çıkmıştır.

Mikrodenetleyici programlama da donanım seçiminin önemli olduğu kadar dil ve derleyici seçimi de çok önemlidir. Her ne kadar Assembly dili az kullanıldığı için gereksiz görülebilse bile mikrodenetleyicinin yapısının iyi öğrenilebilmesi için programcının komut setine hakim olması gereklidir. Bu nedenle bir gömülü sistem tasarımcısı hem Assembly hem de C dillerini iyi seviyede kullanabilmelidir.

Derleyici seçimi konusunda ise arayüze yatkınlık, derleyicin sunduğu ekstra özellikler(simülasyon, özel kütüphaneler vs. gibi) ve kullanıcıların değerlendirmeleri göz önüne alınarak bir seçim yapılabilir.
Mustafa Alper Balım Mustafa Alper Balım Yazar Hakkında Tüm yazıları Mesaj gönder Yazdır



ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar