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.
02.03.2015 tarihli yazı 17033 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.
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.
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET